UNPKG

phaser4-rex-plugins

Version:
1 lines 120 kB
var t,e;t=void 0,e=function(){var t={setEventEmitter(t,e){return void 0===e&&(e=Phaser.Events.EventEmitter),this._privateEE=!0===t||void 0===t,this._eventEmitter=this._privateEE?new e:t,this},destroyEventEmitter(){return this._eventEmitter&&this._privateEE&&this._eventEmitter.shutdown(),this},getEventEmitter(){return this._eventEmitter},on(){return this._eventEmitter&&this._eventEmitter.on.apply(this._eventEmitter,arguments),this},once(){return this._eventEmitter&&this._eventEmitter.once.apply(this._eventEmitter,arguments),this},off(){return this._eventEmitter&&this._eventEmitter.off.apply(this._eventEmitter,arguments),this},emit(t){return this._eventEmitter&&t&&this._eventEmitter.emit.apply(this._eventEmitter,arguments),this},addListener(){return this._eventEmitter&&this._eventEmitter.addListener.apply(this._eventEmitter,arguments),this},removeListener(){return this._eventEmitter&&this._eventEmitter.removeListener.apply(this._eventEmitter,arguments),this},removeAllListeners(){return this._eventEmitter&&this._eventEmitter.removeAllListeners.apply(this._eventEmitter,arguments),this},listenerCount(){return this._eventEmitter?this._eventEmitter.listenerCount.apply(this._eventEmitter,arguments):0},listeners(){return this._eventEmitter?this._eventEmitter.listeners.apply(this._eventEmitter,arguments):[]},eventNames(){return this._eventEmitter?this._eventEmitter.eventNames.apply(this._eventEmitter,arguments):[]}},e={hasProperty(t){var e=this.gameObject;return!!e.hasOwnProperty(t)||void 0!==e[t]},getProperty(t){return this.gameObject[t]},setProperty(t,e){return this.gameObject[t]=e,this},easeProperty(t){var e=t.property,i=t.value,s=t.duration,n=t.delay,r=t.ease,a=t.repeat,o=t.yoyo,u=t.from,c=t.complete,h=t.target;if(void 0===s&&(s=1e3),void 0===n&&(n=0),void 0===r&&(r="Linear"),void 0===a&&(a=0),void 0===o&&(o=!1),void 0===h&&(h=this.gameObject),u){var l=i;i=h[e],h[e]=l}return(t={targets:h,duration:s,delay:n,ease:r,repeat:a,yoyo:o,onComplete:c})[e]=i,this.addTweenTask(e,t),this},addTweenTask(t,e){var i=this.tweens,s=i[t];s&&s.remove();var n=e.onComplete;return e.onComplete=function(){i[t].remove(),i[t]=null,n&&n(e.targets,t)},(s=this.scene.tweens.add(e)).timeScale=this.timeScale,i[t]=s,this},getTweenTask(t){return this.tweens[t]},freeTweens(){var t,e=this.tweens;for(var i in e)(t=e[i])&&t.remove(),e[i]=null;return this}},i={hasMethod(t){return"function"==typeof this.gameObject[t]},call(t,...e){if(!this.hasMethod(t))return console.warn(`[GameObjectManager] Game object '${this.name}' does not have method '${t}'`),this;var i=this.gameObject;return i[t].apply(i,e),this}},s={hasData(t){var e=this.gameObject;return!!e.data&&e.data.has(t)},getData(t){return this.gameObject.getData(t)},setData(t,e){return this.gameObject.setData(t,e),this}};class n{constructor(t,e,i){this.GOManager=t,this.tweens={},this.effects={},this.setGO(e,i)}get scene(){return this.GOManager.scene}get timeScale(){return this.GOManager.timeScale}destroy(){this.freeGO(),this.GOManager=void 0}freeGO(){return this.freeTweens(),this.gameObject.bob=void 0,this.gameObject.destroy(),this.gameObject=void 0,this}setGO(t,e){return t.goName=e,t.goType=this.GOManager.name,t.bob=this,this.gameObject=t,this.name=e,this.freeTweens(),this}setTimeScale(t){var e=this.tweens;for(var i in e){var s=e[i];s&&(s.timeScale=t)}return this}}Object.assign(n.prototype,e,i,s);var r=function(t){return t&&"!"!==t.charAt(0)},a={has(t){return this.bobs.hasOwnProperty(t)},exists(t){return this.bobs.hasOwnProperty(t)},get(t,e){if(r(t))return this.bobs[t];for(var i in void 0===e&&(e=[]),t&&(t=t.substring(1)),this.bobs)t&&i===t||e.push(this.bobs[i]);return e},getFitst(t){for(var e in t&&"!"===t.charAt(0)&&(t=t.substring(1)),this.bobs)if(!t||t!==e)return this.bobs[e];return null},getGO(t,e){var i=this.get(t);return i?Array.isArray(i)?(void 0===e&&(e=[]),i.forEach((function(t){e.push(t.gameObject)})),e):i.gameObject:null},forEachGO(t,e){for(var i in this.bobs){var s=this.bobs[i].gameObject;if(e?t.call(e,s,i,this):t(s,i,this))break}return this},getAllGO(t){for(var e in void 0===t&&(t=[]),this.bobs){var i=this.bobs[e].gameObject;t.push(i)}return t}},o=function(t){return t>>16&255},u=function(t){return t>>8&255},c=function(t){return 255&t};const h=Phaser.Events.EventEmitter;var l=function(t,e,i,s,n,r){return void 0===r?r={}:!0===r&&(r=d),"number"!=typeof i&&(i=0,s=0),r.x=n.x+n.width*t+i,r.y=n.y+n.height*e+s,r},d={},f=function(t,e,i,s,n,r,a){if(t.hasOwnProperty("vp"))return t;"function"==typeof i&&(a=i,i=void 0),"function"==typeof n&&(a=n,n=void 0),void 0===i&&(i=.5),void 0===s&&(s=.5),void 0===n&&(n=0),void 0===r&&(r=0),void 0===a&&(a=l),function(t){if(t.events)return t;var e=new h,i=t.x;Object.defineProperty(t,"x",{get:function(){return i},set:function(s){i!==s&&(i=s,e.emit("update",t))}});var s=t.y;Object.defineProperty(t,"y",{get:function(){return s},set:function(i){s!==i&&(s=i,e.emit("update",t))}});var n=t.width;Object.defineProperty(t,"width",{get:function(){return n},set:function(i){n!==i&&(n=i,e.emit("update",t))}});var r=t.height;Object.defineProperty(t,"height",{get:function(){return r},set:function(i){r!==i&&(r=i,e.emit("update",t))}}),t.events=e}(e);var o=e.events;t.vp=e;var u=function(){a(i,s,n,r,e,t)};o.on("update",u),t.once("destroy",(function(){o.off("update",u),t.vp=void 0})),Object.defineProperty(t,"vpx",{get:function(){return i},set:function(t){i!==t&&(i=t,u())}}),Object.defineProperty(t,"vpy",{get:function(){return s},set:function(t){s!==t&&(s=t,u())}}),Object.defineProperty(t,"vpxOffset",{get:function(){return n},set:function(t){n!==t&&(n=t,u())}}),Object.defineProperty(t,"vpyOffset",{get:function(){return r},set:function(t){r!==t&&(r=t,u())}}),u()},g=function(t,e){if(!t)return!1;if(t.hasOwnProperty(e))return!0;for(;t;){if(Object.getOwnPropertyDescriptor(t,e))return!0;t=t.__proto__}return!1},p=function(t,e){return void 0===e&&(e=!1),t.filters||t.enableFilters().focusFilters(),e?t.filters.external:t.filters.internal},m=function(t,e){t._effectSwitchNames||(t._effectSwitchNames=[],t.clearAllEffects=function(){for(var e=t._effectSwitchNames,i=0,s=e.length;i<s;i++)t[e[i]]=null;return t},t.on("destroy",t.clearAllEffects,t)),t._effectSwitchNames.push(e)},v=function(t,e,i){if(g(t,e))return t;var s,n=p(t),r=`_${e}Effect`;return Object.defineProperty(t,e,{get:function(){return s},set:function(a){s!==a&&(null===(s=a)||!1===s?t[r]&&(n.remove(t[r]),t[r]=void 0):(t[r]||(t[r]=n.addColorMatrix()),t[r].colorMatrix[e](1===i?a:void 0)))}}),t[e]=null,m(t,e),t};const b=Phaser.Game;var y=function(t){return t instanceof b};const E=Phaser.Scene;var k=function(t){return t instanceof E},M=function(t){return null==t||"object"!=typeof t?null:y(t)?t:y(t.game)?t.game:k(t)?t.sys.game:k(t.scene)?t.scene.sys.game:void 0},w=function(t,e){var i=e.FilterName,s=M(t).renderer.renderNodes;return!s.hasNode(i)&&(s.addNodeConstructor(i,e),!0)},_=function(t,e){var i=Phaser.GameObjects.Components.FilterList.prototype;i[t]||(i[t]=e)};const O="FilterP3BloomStep";class T extends Phaser.Renderer.WebGL.RenderNodes.BaseFilterShader{static FilterName=O;constructor(t){super(O,t,null,"#pragma phaserTemplate(shaderName)\n\n#ifdef GL_FRAGMENT_PRECISION_HIGH\n#define highmedp highp\n#else\n#define highmedp mediump\n#endif\nprecision highmedp float;\n\n// Scene buffer\nuniform sampler2D uMainSampler; \nvarying vec2 outTexCoord;\n\n// Effect parameters\nuniform vec2 offset;\nuniform float strength;\nuniform vec3 color;\n\n#pragma phaserTemplate(fragmentHeader)\n\nvoid main (void) {\n vec4 sum = texture2D(uMainSampler, outTexCoord) * 0.204164 * strength;\n\n sum = sum + texture2D(uMainSampler, outTexCoord + offset * 1.407333) * 0.304005;\n sum = sum + texture2D(uMainSampler, outTexCoord - offset * 1.407333) * 0.304005;\n sum = sum + texture2D(uMainSampler, outTexCoord + offset * 3.294215) * 0.093913;\n sum = sum + texture2D(uMainSampler, outTexCoord - offset * 3.294215) * 0.093913;\n\n gl_FragColor = sum * vec4(color, 1);\n}\n")}setupUniforms(t,e){const i=this.programManager;var s=2/e.width*t.offsetX,n=2/e.height*t.offsetY;i.setUniform("offset",[s,n]),i.setUniform("strength",t.strength),i.setUniform("color",t.glcolor)}}const S=Phaser.Utils.Objects.GetValue;class x extends Phaser.Filters.Controller{static FilterName=O;constructor(t,e){super(t,O),this.offsetX=1,this.offsetY=1,this.strength=1,this.glcolor=[1,1,1],this.resetFromJSON(e)}resetFromJSON(t){return this.setOffset(S(t,"offsetX",1),S(t,"offsetY",1)),this.setStrength(S(t,"strength",1)),this.setColor(S(t,"color",16777215)),this}get color(){var t=this.glcolor;return(255*t[0]<<16)+(255*t[1]<<8)+(255*t[2]|0)}set color(t){var e=this.glcolor;e[0]=(t>>16&255)/255,e[1]=(t>>8&255)/255,e[2]=(255&t)/255}setOffset(t,e){return this.offsetX=t,this.offsetY=e,this}setStrength(t){return this.strength=t,this}setColor(t){return this.color=t,this}}const C=Phaser.Utils.Objects.GetValue;let P=class extends Phaser.Filters.ParallelFilters{constructor(t,e){super(t),this.steps=0,this.offsetX=1,this.offsetY=1,this.blurStrength=1,this.color=16777215,this.strength=1,this.resetFromJSON(e)}resetFromJSON(t){return this.setOffset(C(t,"offsetX",1),C(t,"offsetY",1)),this.setBlurStrength(C(t,"blurStrength",1)),this.setColor(C(t,"color",16777215)),this.setStrength(C(t,"strength",1)),this.setSteps(C(t,"steps",4)),this}forEachController(t,e){this.top.list.forEach(t,e)}get steps(){return this._steps}set steps(t){if(this._steps!==t){var e=this.camera;if(this.steps<t)for(var i=this.top,s=2*t,n=2*this.steps;n<s;n++)i.add(new x(e));else{var r=this.top.list;for(s=2*t,n=2*this.steps-1;n>=s;n--)r[n].destroy();r.length=s}this._steps=t,this.setOffset(this.offsetX,this.offsetY),this.setBlurStrength(this.strength),this.setColor(this.color)}}setSteps(t){return this.steps=t,this}get offsetX(){return this._offsetX}set offsetX(t){this._offsetX=t,this.forEachController((function(e,i){e.offsetX=i%2==0?t:0}))}get offsetY(){return this._offsetY}set offsetY(t){this._offsetY=t,this.forEachController((function(e,i){e.offsetY=i%2==1?t:0}))}setOffset(t,e){return this.offsetX=t,this.offsetY=e,this}get blurStrength(){return this._blurStrength}set blurStrength(t){this._blurStrength=t,this.forEachController((function(e){e.strength=t}))}setBlurStrength(t){return this.blurStrength=t,this}get color(){return this._color}set color(t){this._color=t,this.forEachController((function(e){e.color=t}))}setColor(t){return this.color=t,this}get strength(){return this._strength}set strength(t){this._strength=t,this.blend.amount=t}setStrength(t){return this.strength=t,this}};const j="FilterP3Circle";class G extends Phaser.Renderer.WebGL.RenderNodes.BaseFilterShader{static FilterName=j;constructor(t){super(j,t,null,"#pragma phaserTemplate(shaderName)\n\n#ifdef GL_FRAGMENT_PRECISION_HIGH\n#define highmedp highp\n#else\n#define highmedp mediump\n#endif\nprecision highmedp float;\n\n// Scene buffer\nuniform sampler2D uMainSampler; \nvarying vec2 outTexCoord;\n\n// Effect parameters\nuniform vec2 texSize;\nuniform vec3 color;\nuniform vec4 backgroundColor;\nuniform vec3 config;\n\n#pragma phaserTemplate(fragmentHeader)\n\nvoid main (void) {\n float thickness = config.x;\n float scale = config.y;\n float feather = config.z;\n\n vec4 texture = texture2D(uMainSampler, outTexCoord);\n\n vec2 position = (gl_FragCoord.xy / texSize.xy) * 2.0 - 1.0;\n\n float aspectRatio = texSize.x / texSize.y;\n\n position.x *= aspectRatio;\n\n float grad = length(position);\n\n // height > width\n float outer = aspectRatio;\n float inner = outer - (thickness * 2.0 / texSize.y);\n\n // width > height\n if (aspectRatio >= 1.0)\n {\n float f = 2.0 + (texSize.y / texSize.x);\n outer = 1.0;\n inner = 1.0 - (thickness * f / texSize.x);\n }\n\n outer *= scale;\n inner *= scale;\n\n float circle = smoothstep(outer, outer - 0.01, grad);\n\n float ring = circle - smoothstep(inner, inner - feather, grad);\n\n texture = mix(backgroundColor * backgroundColor.a, texture, texture.a);\n\n texture = (texture * (circle - ring));\n\n gl_FragColor = vec4(texture.rgb + (ring * color), texture.a);\n}\n")}setupUniforms(t,e){const i=this.programManager;i.setUniform("texSize",[e.width,e.height]),i.setUniform("color",t.glcolor),i.setUniform("backgroundColor",t.glcolor2),i.setUniform("config",[t.thickness,t.scale,t.feather])}}const L=Phaser.Utils.Objects.GetValue;class F extends Phaser.Filters.Controller{static FilterName=j;constructor(t,e){super(t,j),this.thickness=8,this.scale=1,this.feather=.005,this.glcolor=[1,.2,.7],this.glcolor2=[1,0,0,.4],this.resetFromJSON(e)}resetFromJSON(t){return this.setThickness(L(t,"thickness",8)),this.setScale(L(t,"scale",1)),this.setFeather(L(t,"feather",.005)),this.setColor(L(t,"color",16724914)),this.setBackgroundColor(L(t,"backgroundColor",16711680)),this.setBackgroundAlpha(L(t,"backgroundAlpha",.4)),this}get color(){var t=this.glcolor;return(255*t[0]<<16)+(255*t[1]<<8)+(255*t[2]|0)}set color(t){var e=this.glcolor;e[0]=(t>>16&255)/255,e[1]=(t>>8&255)/255,e[2]=(255&t)/255}get backgroundColor(){var t=this.glcolor2;return(255*t[0]<<16)+(255*t[1]<<8)+(255*t[2]|0)}set backgroundColor(t){var e=this.glcolor2;e[0]=(t>>16&255)/255,e[1]=(t>>8&255)/255,e[2]=(255&t)/255}get backgroundAlpha(){return this.glcolor2[3]}set backgroundAlpha(t){this.glcolor2[3]=t}setThickness(t){return this.thickness=t,this}setScale(t){return this.scale=t,this}setFeather(t){return this.feather=t,this}setColor(t){return this.color=t,this}setBackgroundColor(t){return this.backgroundColor=t,this}setBackgroundAlpha(t){return this.backgroundAlpha=t,this}}const R="FilterP3Gradient";class B extends Phaser.Renderer.WebGL.RenderNodes.BaseFilterShader{static FilterName=R;constructor(t){super(R,t,null,"#pragma phaserTemplate(shaderName)\n\n#ifdef GL_FRAGMENT_PRECISION_HIGH\n#define highmedp highp\n#else\n#define highmedp mediump\n#endif\nprecision highmedp float;\n\n#define SRGB_TO_LINEAR(c) pow((c), vec3(2.2))\n#define LINEAR_TO_SRGB(c) pow((c), vec3(1.0 / 2.2))\n#define SRGB(r, g, b) SRGB_TO_LINEAR(vec3(float(r), float(g), float(b)) / 255.0)\n\n// Scene buffer\nuniform sampler2D uMainSampler; \nvarying vec2 outTexCoord;\n\n// Effect parameters\nuniform float alpha;\nuniform vec2 positionFrom;\nuniform vec2 positionTo;\nuniform vec3 color1;\nuniform vec3 color2;\nuniform int size;\n\n#pragma phaserTemplate(fragmentHeader)\n\nfloat gradientNoise(in vec2 uv)\n{\n const vec3 magic = vec3(0.06711056, 0.00583715, 52.9829189);\n return fract(magic.z * fract(dot(uv, magic.xy)));\n}\n\nfloat stepped (in float s, in float scale, in int steps)\n{\n return steps > 0 ? floor( s / ((1.0 * scale) / float(steps))) * 1.0 / float(steps - 1) : s;\n}\n\nvoid main ()\n{\n vec2 a = positionFrom;\n vec2 b = positionTo;\n vec2 ba = b - a;\n\n float d = dot(outTexCoord - a, ba) / dot(ba, ba);\n float t = size > 0 ? stepped(d, 1.0, size) : d;\n\n t = smoothstep(0.0, 1.0, clamp(t, 0.0, 1.0));\n\n vec3 color = mix(SRGB(color1.r, color1.g, color1.b), SRGB(color2.r, color2.g, color2.b), t);\n\n color = LINEAR_TO_SRGB(color);\n color += (1.0 / 255.0) * gradientNoise(outTexCoord) - (0.5 / 255.0);\n\n vec4 texture = texture2D(uMainSampler, outTexCoord);\n\n gl_FragColor = vec4(mix(color.rgb, texture.rgb, alpha), 1.0) * texture.a;\n}\n")}setupUniforms(t,e){const i=this.programManager;i.setUniform("alpha",t.alpha),i.setUniform("positionFrom",[t.fromX,t.fromY]),i.setUniform("positionTo",[t.toX,t.toY]),i.setUniform("color1",t.glcolor1),i.setUniform("color2",t.glcolor2),i.setUniform("size",t.size)}}const A=Phaser.Utils.Objects.GetValue;class D extends Phaser.Filters.Controller{static FilterName=R;constructor(t,e){super(t,R),this.alpha=.2,this.fromX=0,this.fromY=0,this.toX=0,this.toY=1,this.glcolor1=[255,0,0],this.glcolor2=[0,255,0],this.size=0,this.resetFromJSON(e)}resetFromJSON(t){return this.setAlpha(A(t,"alpha",.2)),this.setFromPosition(A(t,"fromX",0),A(t,"fromY",0)),this.setToPosition(A(t,"toX",0),A(t,"toY",1)),this.setColor1(A(t,"color1",16711680)),this.setColor2(A(t,"color2",65280)),this.setSize(A(t,"size",0)),this}get color1(){var t=this.glcolor1;return(t[0]<<16)+(t[1]<<8)+(0|t[2])}set color1(t){var e=this.glcolor1;e[0]=t>>16&255,e[1]=t>>8&255,e[2]=255&t}get color2(){var t=this.glcolor2;return(t[0]<<16)+(t[1]<<8)+(0|t[2])}set color2(t){var e=this.glcolor2;e[0]=t>>16&255,e[1]=t>>8&255,e[2]=255&t}setAlpha(t){return this.alpha=t,this}setFromPosition(t,e){return this.fromX=t,this.fromY=e,this}setToPosition(t,e){return this.toX=t,this.toY=e,this}setColor1(t){return this.color1=t,this}setColor2(t){return this.color2=t,this}setSize(t){return this.size=t,this}}const N="FilterP3Wipe";class $ extends Phaser.Renderer.WebGL.RenderNodes.BaseFilterShader{static FilterName=N;constructor(t){super(N,t,null,"#pragma phaserTemplate(shaderName)\n\n#ifdef GL_FRAGMENT_PRECISION_HIGH\n#define highmedp highp\n#else\n#define highmedp mediump\n#endif\nprecision highmedp float;\n\n// Scene buffer\nuniform sampler2D uMainSampler; \nvarying vec2 outTexCoord;\n\n// Effect parameters\nuniform vec4 config;\nuniform bool reveal;\n\n#pragma phaserTemplate(fragmentHeader)\n\nvoid main (void) {\n vec2 uv = outTexCoord;\n\n vec4 color0;\n vec4 color1;\n\n if (reveal) {\n color0 = vec4(0);\n color1 = texture2D(uMainSampler, uv);\n } else {\n color0 = texture2D(uMainSampler, uv);\n color1 = vec4(0);\n }\n\n float distance = config.x;\n float width = config.y;\n float direction = config.z;\n float axis = uv.x;\n\n if (config.w == 1.0) {\n axis = uv.y;\n }\n\n float adjust = mix(width, -width, distance);\n float value = smoothstep(distance - width, distance + width, abs(direction - axis) + adjust);\n gl_FragColor = mix(color1, color0, value);\n}\n")}setupUniforms(t,e){const i=this.programManager;i.setUniform("config",[t.progress,t.wipeWidth,t.direction,t.axis]),i.setUniform("reveal",t.reveal)}}const W=Phaser.Utils.Objects.GetValue,V=Phaser.Math.Clamp;class I extends Phaser.Filters.Controller{static FilterName=N;constructor(t,e){super(t,N),this.progress=0,this.wipeWidth=.1,this.direction=0,this.axis=0,this.reveal=!1,this.resetFromJSON(e)}resetFromJSON(t){this.setProgress(W(t,"progress",0)),this.setWipeWidth(W(t,"wipeWidth",.1)),this.setDirection(W(t,"direction",0)),this.setAxis(W(t,"axis",0));var e=W(t,"reveal",void 0);return void 0===e&&(e=!W(t,"wipe",!0)),e?this.enableRevealMode():this.enableWipeMode(),this}get progress(){return this._progress}set progress(t){this._progress=V(t,0,1)}setProgress(t){return this.progress=t,this}get wipeWidth(){return this._wipeWidth}set wipeWidth(t){this._wipeWidth=V(t,0,1)}setWipeWidth(t){return this.wipeWidth=t,this}setDirection(t){return this.direction=t,this}setAxis(t){return this.axis=t,this}enableWipeMode(){return this.reveal=!1,this}enableRevealMode(){return this.reveal=!0,this}}var U=function(t){return t=M(t),!!w(t,$)&&(_("addP3Wipe",(function(t,e,i){return void 0===t&&(t=.1),void 0===e&&(e=0),void 0===i&&(i=0),this.add(new I(this.camera,{wipeWidth:t,direction:e,axis:i}))})),_("addP3Reveal",(function(t,e,i){return void 0===t&&(t=.1),void 0===e&&(e=0),void 0===i&&(i=0),this.add(new I(this.camera,{wipeWidth:t,direction:e,axis:i,reveal:!0}))})),!0)};const X="FilterP3Shine",Y=36e5;var z=function(t,e){var i=e+M(t).loop.delta;return i>=Y&&(i-=Y),i};class J extends Phaser.Renderer.WebGL.RenderNodes.BaseFilterShader{static FilterName=X;constructor(t){super(X,t,null,"#pragma phaserTemplate(shaderName)\n\n#ifdef GL_FRAGMENT_PRECISION_HIGH\n#define highmedp highp\n#else\n#define highmedp mediump\n#endif\nprecision highmedp float;\n\n// Scene buffer\nuniform sampler2D uMainSampler; \nvarying vec2 outTexCoord;\n\n// Effect parameters\nuniform vec4 config;\nuniform bool reveal;\nuniform vec2 texSize;\n\n#pragma phaserTemplate(fragmentHeader)\n\nvoid main (void) {\n float speed = config.x;\n float time = config.y;\n float lineWidth = config.z;\n float gradient = config.w;\n\n\tvec2 uv = gl_FragCoord.xy / texSize;\n\n vec4 tex = texture2D(uMainSampler, outTexCoord);\n\n vec4 col1 = vec4(0.3, 0.0, 0.0, 1.0);\n vec4 col2 = vec4(0.85, 0.85, 0.85, 1.0);\n\n uv.x = uv.x - mod(time * speed, 2.0) + 0.5;\n float y = uv.x * gradient;\n\n float s = smoothstep(y - lineWidth, y, uv.y) - smoothstep(y, y + lineWidth, uv.y);\n\n gl_FragColor = (((s * col1) + (s * col2)) * tex);\n\n if (!reveal)\n {\n // Apply the shine effect\n gl_FragColor += tex;\n }\n}\n")}setupUniforms(t,e){const i=this.programManager;t.now=z(this.manager.renderer.game,t.now),i.setUniform("config",[t.speed,t.now,t.lineWidth,t.gradient]),i.setUniform("reveal",t.reveal),i.setUniform("texSize",[e.width,e.height])}}const K=Phaser.Utils.Objects.GetValue;class H extends Phaser.Filters.Controller{static FilterName=X;constructor(t,e){super(t,X),this.now=0,this.speed=.5,this.lineWidth=.5,this.gradient=3,this.reveal=!1,this.resetFromJSON(e)}resetFromJSON(t){return this.setSpeed(K(t,"speed",.5)),this.setLineWidth(K(t,"lineWidth",.5)),this.setGradient(K(t,"gradient",3)),this.setReveal(K(t,"reveal",!1)),this}setSpeed(t){return this.speed=t,this}setLineWidth(t){return this.lineWidth=t,this}setGradient(t){return this.gradient=t,this}setReveal(t){return this.reveal=t,this}}const q="FilterP3Vignette";class Q extends Phaser.Renderer.WebGL.RenderNodes.BaseFilterShader{static FilterName=q;constructor(t){super(q,t,null,"#pragma phaserTemplate(shaderName)\n\n#ifdef GL_FRAGMENT_PRECISION_HIGH\n#define highmedp highp\n#else\n#define highmedp mediump\n#endif\nprecision highmedp float;\n\n// Scene buffer\nuniform sampler2D uMainSampler; \nvarying vec2 outTexCoord;\n\n// Effect parameters\nuniform vec2 config;\nuniform vec2 position;\n\n#pragma phaserTemplate(fragmentHeader)\n\nvoid main (void) {\n float radius = config.x;\n float strength = config.y;\n\n vec4 col = vec4(1.0);\n\n float d = length(outTexCoord - position);\n\n if (d <= radius)\n {\n float g = d / radius;\n g = sin(g * 3.14 * strength);\n \tcol = vec4(g * g * g);\n }\n\n vec4 texture = texture2D(uMainSampler, outTexCoord);\n\n gl_FragColor = texture * (1.0 - col);\n}\n")}setupUniforms(t,e){const i=this.programManager;i.setUniform("config",[t.radius,t.strength]),i.setUniform("position",[t.x,t.y])}}const Z=Phaser.Utils.Objects.GetValue;class tt extends Phaser.Filters.Controller{static FilterName=q;constructor(t,e){super(t,q),this.x=.5,this.y=.5,this.radius=.5,this.strength=.5,this.resetFromJSON(e)}resetFromJSON(t){return this.setPosition(Z(t,"x",.5),Z(t,"y",.5)),this.setRadius(Z(t,"radius",.5)),this.setStrength(Z(t,"strength",.5)),this}setPosition(t,e){return this.x=t,this.y=e,this}setRadius(t){return this.radius=t,this}setStrength(t){return this.strength=t,this}}const et={barrel:function(t){if(g(t,"barrel"))return t;var e,i=p(t);return Object.defineProperty(t,"barrel",{get:function(){return e},set:function(s){e!==s&&(null===(e=s)||!1===e?t._barrelEffect&&(i.remove(t._barrelEffect),t._barrelEffect=void 0):(t._barrelEffect||(t._barrelEffect=i.addBarrel()),t._barrelEffect.amount=e))}}),t.barrel=null,m(t,"barrel"),t},blackWhite:function(t){return v(t,"blackWhite"),t},blocky:function(t){if(g(t,"blockySize"))return t;var e,i=p(t),s=0,n=0;return Object.defineProperty(t,"blockySize",{get:function(){return e},set:function(r){e!==r&&(null===(e=r)||!1===e?t._blockyEffect&&(i.remove(t._blockyEffect),t._blockyEffect=void 0):(t._blockyEffect||(t._blockyEffect=i.addBlocky({size:e,offset:{x:s,y:n}})),t._blockyEffect.size.x=e,t._blockyEffect.size.y=e))}}),Object.defineProperty(t,"blockyOffsetX",{get:function(){return s},set:function(e){s!==e&&(s=e,t._blockyEffect&&(t._blockyEffect.offset.x=s))}}),Object.defineProperty(t,"blockyOffsetY",{get:function(){return n},set:function(e){n!==e&&(n=e,t._blockyEffect&&(t._blockyEffect.offset.y=n))}}),m(t,"blockySize"),t},bloom:function(t){if(g(t,"bloomColor"))return t;var e;e=M(e=t),w(e,T)&&_("addP3Bloom",(function(t,e,i,s,n,r){return void 0===t&&(t=16777215),void 0===e&&(e=1),void 0===i&&(i=1),void 0===s&&(s=1),void 0===n&&(n=1),void 0===r&&(r=4),this.add(new P(this.camera,{color:t,offsetX:e,offsetY:i,blurStrength:s,strength:n,steps:r}))}));var i,s=p(t),n=1,r=1,a=1,o=1,u=4;return Object.defineProperty(t,"bloomColor",{get:function(){return i},set:function(e){i!==e&&(null===(i=e)||!1===i?t._bloom&&(s.remove(t._bloom),t._bloom=void 0):(t._bloom||(t._bloom=s.addBloom(i,n,r,a,o,u)),t._bloom.color=i))}}),Object.defineProperty(t,"bloomOffsetX",{get:function(){return n},set:function(e){n!==e&&(n=e,t._bloom&&(t._bloom.offsetX=n))}}),Object.defineProperty(t,"bloomOffsetY",{get:function(){return r},set:function(e){r!==e&&(r=e,t._bloom&&(t._bloom.offsetY=r))}}),Object.defineProperty(t,"bloomBlurStrength",{get:function(){return a},set:function(e){a!==e&&(a=e,t._bloom&&(t._bloom.blurStrength=a))}}),Object.defineProperty(t,"bloomStrength",{get:function(){return o},set:function(e){o!==e&&(o=e,t._bloom&&(t._bloom.strength=o))}}),Object.defineProperty(t,"bloomSteps",{get:function(){return u},set:function(e){u!==e&&(u=e,t._bloom&&(t._bloom.steps=u))}}),t.bloomColor=null,m(t,"bloomColor"),t},blur:function(t){if(g(t,"blurColor"))return t;var e,i=p(t),s=0,n=1,r=1,a=1,o=4;return Object.defineProperty(t,"blurColor",{get:function(){return e},set:function(u){e!==u&&(null===(e=u)||!1===e?t._blur&&(i.remove(t._blur),t._blur=void 0):(t._blur||(t._blur=i.addBlur(s,n,r,a,e,o)),t._blur.color=e))}}),Object.defineProperty(t,"blurQuality",{get:function(){return s},set:function(e){s!==e&&(s=e,t._blur&&(t._blur.quality=s))}}),Object.defineProperty(t,"blurX",{get:function(){return n},set:function(e){n!==e&&(n=e,t._blur&&(t._blur.x=n))}}),Object.defineProperty(t,"blurY",{get:function(){return r},set:function(e){r!==e&&(r=e,t._blur&&(t._blur.y=r))}}),Object.defineProperty(t,"blurStrength",{get:function(){return a},set:function(e){a!==e&&(a=e,t._blur&&(t._blur.strength=a))}}),Object.defineProperty(t,"blurSteps",{get:function(){return o},set:function(e){o!==e&&(o=e,t._blur&&(t._blur.steps=o))}}),t.blurColor=null,m(t,"blurColor"),t},bokeh:function(t){if(g(t,"bokehRadius"))return t;var e,i=p(t),s=1,n=.2;return Object.defineProperty(t,"bokehRadius",{get:function(){return e},set:function(r){e!==r&&(null===(e=r)||!1===e?t._bokeh&&(i.remove(t._bokeh),t._bokeh=void 0):(t._bokeh||(t._bokeh=i.addBokeh(e,s,n)),t._bokeh.radius=e))}}),Object.defineProperty(t,"bokehAmount",{get:function(){return s},set:function(e){s!==e&&(s=e,t._bokeh&&(t._bokeh.amount=s))}}),Object.defineProperty(t,"bokehContrast",{get:function(){return n},set:function(e){n!==e&&(n=e,t._bokeh&&(t._bokeh.contrast=n))}}),t.bokehRadius=null,m(t,"bokehRadius"),t},brightness:function(t){return v(t,"brightness",1),t},brown:function(t){return v(t,"brown"),t},circle:function(t){if(g(t,"circleColor"))return t;var e;e=M(e=t),w(e,G)&&(_("addP3Bloom",(function(t,e,i,s,n,r){return void 0===t&&(t=16777215),void 0===e&&(e=1),void 0===i&&(i=1),void 0===s&&(s=1),void 0===n&&(n=1),void 0===r&&(r=4),this.add(new BloomController(this.camera,{color:t,offsetX:e,offsetY:i,blurStrength:s,strength:n,steps:r}))})),_("addP3Circle",(function(t,e,i,s,n){return void 0===t&&(t=8),void 0===e&&(e=16724914),void 0===i&&(i=16711680),void 0===s&&(s=1),void 0===n&&(n=.005),this.add(new F(this.camera,{thickness:t,color:e,backgroundColor:i,scale:s,feather:n}))})));var i,s=p(t),n=8,r=0,a=.4,o=1,u=.005;return Object.defineProperty(t,"circleColor",{get:function(){return i},set:function(e){i!==e&&(null===(i=e)||!1===i?t._circle&&(s.remove(t._circle),t._circle=void 0):(t._circle||(t._circle=s.addP3Circle(n,i,r,o,u),t.circleBackgroundAlpha=a),t._circle.color=i))}}),Object.defineProperty(t,"circleThickness",{get:function(){return n},set:function(e){n!==e&&(n=e,t._circle&&(t._circle.thickness=n))}}),Object.defineProperty(t,"circleBackgroundColor",{get:function(){return r},set:function(e){r!==e&&(r=e,t._circle&&(t._circle.backgroundColor=r))}}),Object.defineProperty(t,"circleBackgroundAlpha",{get:function(){return a},set:function(e){a!==e&&(a=e,t._circle&&(t._circle.glcolor2[3]=a))}}),Object.defineProperty(t,"circleScale",{get:function(){return o},set:function(e){o!==e&&(o=e,t._circle&&(t._circle.scale=o))}}),Object.defineProperty(t,"circleFeather",{get:function(){return u},set:function(e){u!==e&&(u=e,t._circle&&(t._circle.feather=u))}}),t.circleColor=null,m(t,"circleColor"),t},contrast:function(t){return v(t,"contrast",1),t},desaturate:function(t){return v(t,"desaturate",1),t},desaturateLuminance:function(t){return v(t,"desaturateLuminance"),t},displacement:function(t){if(g(t,"displacementKey"))return t;var e,i=p(t),s=.005,n=.005;return Object.defineProperty(t,"displacementKey",{get:function(){return e},set:function(r){e!==r&&(null===(e=r)||!1===e?t._displacement&&(i.remove(t._displacement),t._displacement=void 0):(t._displacement||(t._displacement=i.addDisplacement(e,s,n)),t._displacement.setTexture(e)))}}),Object.defineProperty(t,"displacementX",{get:function(){return s},set:function(e){s!==e&&(s=e,t._displacement&&(t._displacement.x=s))}}),Object.defineProperty(t,"displacementY",{get:function(){return n},set:function(e){n!==e&&(n=e,t._displacement&&(t._displacement.y=n))}}),t.displacementKey=null,m(t,"displacementKey"),t},glow:function(t){if(g(t,"glowColor"))return t;var e,i=p(t),s=4,n=0;return Object.defineProperty(t,"glowColor",{get:function(){return e},set:function(r){e!==r&&(null===(e=r)||!1===e?t._glow&&(i.remove(t._glow),t._glow=void 0):(t._glow||(t._glow=i.addGlow(e,s,n)),t._glow.color=e))}}),Object.defineProperty(t,"glowOuterStrength",{get:function(){return s},set:function(e){s!==e&&(s=e,t._glow&&(t._glow.outerStrength=s))}}),Object.defineProperty(t,"glowInnerStrength",{get:function(){return n},set:function(e){n!==e&&(n=e,t._glow&&(t._glow.innerStrength=n))}}),t.glowColor=null,m(t,"glowColor"),t},gradient:function(t){if(g(t,"gradientColor"))return t;var e;e=M(e=t),w(e,B)&&_("addP3Gradient",(function(t,e,i,s,n,r,a,o){return void 0===t&&(t=16711680),void 0===e&&(e=65280),void 0===i&&(i=.2),void 0===s&&(s=0),void 0===n&&(n=0),void 0===r&&(r=0),void 0===a&&(a=1),void 0===o&&(o=0),this.add(new D(this.camera,{color1:t,color2:e,alpha:i,fromX:s,fromY:n,toX:r,toY:a,size:o}))}));var i,s,n=p(t),r=.5,a=0,o=0,u=0,c=1,h=0;return Object.defineProperty(t,"gradientColor",{get:function(){return[i,s]},set:function(e){var l,d;null===e||!1===e?(l=null,d=null):(l=e[0],d=e[1]),i===l&&s===d||(s=d,null===(i=l)||!1===i?t._gradient&&(n.remove(t._gradient),t._gradient=void 0):(t._gradient||(t._gradient=n.addP3Gradient(i,s,r,a,o,u,c,h)),t._gradient.color1=i,t._gradient.color2=s))}}),Object.defineProperty(t,"gradientColor1",{get:function(){return i},set:function(e){null!==e&&!1!==e?i!==e&&(i=e,t._gradient&&(t._gradient.color1=i)):t.gradientColor=e}}),Object.defineProperty(t,"gradientColor2",{get:function(){return s},set:function(e){null!==e&&!1!==e?s!==e&&(s=e,t._gradient&&(t._gradient.color2=s)):t.gradientColor=e}}),Object.defineProperty(t,"gradientAlpha",{get:function(){return r},set:function(e){r!==e&&(r=e,t._gradient&&(t._gradient.alpha=r))}}),Object.defineProperty(t,"gradientFromX",{get:function(){return a},set:function(e){a!==e&&(a=e,t._gradient&&(t._gradient.fromX=a))}}),Object.defineProperty(t,"gradientFromY",{get:function(){return o},set:function(e){o!==e&&(o=e,t._gradient&&(t._gradient.fromY=o))}}),Object.defineProperty(t,"gradientToX",{get:function(){return u},set:function(e){u!==e&&(u=e,t._gradient&&(t._gradient.toX=u))}}),Object.defineProperty(t,"gradientToY",{get:function(){return c},set:function(e){c!==e&&(c=e,t._gradient&&(t._gradient.toY=c))}}),Object.defineProperty(t,"gradientSize",{get:function(){return h},set:function(e){h!==e&&(h=e,t._gradient&&(t._gradient.size=h))}}),t.gradientColor=null,m(t,"gradientColor"),t},grayscale:function(t){return v(t,"grayscale",1),t},hue:function(t){return v(t,"hue",1),t},kodachrome:function(t){return v(t,"kodachrome"),t},lsd:function(t){return v(t,"lsd"),t},negative:function(t){return v(t,"negative"),t},pixelate:function(t){if(g(t,"pixelate"))return t;var e,i=p(t);return Object.defineProperty(t,"pixelate",{get:function(){return e},set:function(s){e!==s&&(null===(e=s)||!1===e?t._pixelateEffect&&(i.remove(t._pixelateEffect),t._pixelateEffect=void 0):(t._pixelateEffect||(t._pixelateEffect=i.addPixelate()),t._pixelateEffect.amount=e))}}),t.pixelate=null,m(t,"pixelate"),t},polaroid:function(t){return v(t,"polaroid"),t},reveal:function(t){if(g(t,"revealLeft"))return t;U(t);var e,i,s,n,r=p(t),a=.1,o=function(){e=null,i=null,s=null,n=null},u=function(t){t._revealEffect&&(r.remove(t._revealEffect),t._revealEffect=void 0)};return Object.defineProperty(t,"revealLeft",{get:function(){return e},set:function(i){e!==i&&(o(),null===(e=i)||!1===e?u(t):(t._revealEffect||(t._revealEffect=r.addP3Reveal(a,0,0)),t._revealEffect.direction=1,t._revealEffect.axis=0,t._revealEffect.progress=e))}}),Object.defineProperty(t,"revealRight",{get:function(){return i},set:function(e){i!==e&&(o(),null===(i=e)||!1===i?u(t):(t._revealEffect||(t._revealEffect=r.addP3Reveal(a,0,0)),t._revealEffect.direction=0,t._revealEffect.axis=0,t._revealEffect.progress=i))}}),Object.defineProperty(t,"revealUp",{get:function(){return s},set:function(e){s!==e&&(o(),null===(s=e)||!1===s?u(t):(t._revealEffect||(t._revealEffect=r.addP3Reveal(a,0,0)),t._revealEffect.direction=1,t._revealEffect.axis=1,t._revealEffect.progress=s))}}),Object.defineProperty(t,"revealDown",{get:function(){return n},set:function(e){n!==e&&(o(),null===(n=e)||!1===n?u(t):(t._revealEffect||(t._revealEffect=r.addP3Reveal(a,0,0)),t._revealEffect.direction=0,t._revealEffect.axis=1,t._revealEffect.progress=n))}}),Object.defineProperty(t,"revealWidth",{get:function(){return a},set:function(e){a!==e&&(a=e,t._revealEffect&&(t._revealEffect.wipeWidth=a))}}),t.revealLeft=null,m(t,"revealLeft"),m(t,"revealRight"),m(t,"revealUp"),m(t,"revealDown"),t},saturate:function(t){return v(t,"saturate",1),t},sepia:function(t){return v(t,"sepia"),t},shadow:function(t){if(g(t,"shadowColor"))return t;var e,i=p(t),s=0,n=0,r=.1,a=1,o=6,u=1;return Object.defineProperty(t,"shadowColor",{get:function(){return e},set:function(c){e!==c&&(null===(e=c)||!1===e?t._shadow&&(i.remove(t._shadow),t._shadow=void 0):(t._shadow||(t._shadow=i.addShadow(s,n,r,a,e,o,u)),t._shadow.color=e))}}),Object.defineProperty(t,"shadowX",{get:function(){return s},set:function(e){s!==e&&(s=e,t._shadow&&(t._shadow.x=s))}}),Object.defineProperty(t,"shadowY",{get:function(){return n},set:function(e){n!==e&&(n=e,t._shadow&&(t._shadow.y=n))}}),Object.defineProperty(t,"decay",{get:function(){return r},set:function(e){r!==e&&(r=e,t._shadow&&(t._shadow.decay=r))}}),Object.defineProperty(t,"shadowPower",{get:function(){return a},set:function(e){a!==e&&(a=e,t._shadow&&(t._shadow.power=a))}}),Object.defineProperty(t,"shadowSamples",{get:function(){return o},set:function(e){o!==e&&(o=e,t._shadow&&(t._shadow.samples=o))}}),Object.defineProperty(t,"shadowIntensity",{get:function(){return u},set:function(e){u!==e&&(u=e,t._shadow&&(t._shadow.intensity=u))}}),t.shadowColor=null,m(t,"shadowColor"),t},shiftToBGR:function(t){return v(t,"shiftToBGR"),t},shine:function(t){if(g(t,"shineSpeed"))return t;var e;e=M(e=t),w(e,J)&&_("addP3Shine",(function(t,e,i,s){return void 0===t&&(t=.5),void 0===e&&(e=.5),void 0===i&&(i=3),void 0===s&&(s=!1),this.add(new H(this.camera,{speed:t,lineWidth:e,gradient:i,reveal:s}))}));var i,s=p(t),n=.5,r=3;return Object.defineProperty(t,"shineSpeed",{get:function(){return i},set:function(e){i!==e&&(null===(i=e)||!1===i?t._shine&&(s.remove(t._shine),t._shine=void 0):(t._shine||(t._shine=s.addP3Shine(i,n,r)),t._shine.speed=i))}}),Object.defineProperty(t,"shineLineWidth",{get:function(){return n},set:function(e){n!==e&&(n=e,t._shine&&(t._shine.lineWidth=n))}}),Object.defineProperty(t,"shineGradient",{get:function(){return r},set:function(e){r!==e&&(r=e,t._shine&&(t._shine.gradient=r))}}),t.shineSpeed=null,m(t,"shineSpeed"),t},technicolor:function(t){return v(t,"technicolor"),t},tiltShift:function(t){if(g(t,"tiltShiftRadius"))return t;var e,i=p(t),s=1,n=.2,r=1,a=1,o=1;return Object.defineProperty(t,"tiltShiftRadius",{get:function(){return e},set:function(u){e!==u&&(null===(e=u)||!1===e?t._tiltShift&&(i.remove(t._tiltShift),t._tiltShift=void 0):(t._tiltShift||(t._tiltShift=i.addTiltShift(e,s,n,r,a,o)),t._tiltShift.radius=e))}}),Object.defineProperty(t,"tiltShiftAmount",{get:function(){return s},set:function(e){s!==e&&(s=e,t._tiltShift&&(t._tiltShift.amount=s))}}),Object.defineProperty(t,"tiltShiftContrast",{get:function(){return n},set:function(e){n!==e&&(n=e,t._tiltShift&&(t._tiltShift.contrast=n))}}),Object.defineProperty(t,"tiltShiftBlurX",{get:function(){return r},set:function(e){r!==e&&(r=e,t._tiltShift&&(t._tiltShift.blurX=r))}}),Object.defineProperty(t,"tiltShiftBlurY",{get:function(){return a},set:function(e){a!==e&&(a=e,t._tiltShift&&(t._tiltShift.blurY=a))}}),Object.defineProperty(t,"tiltShiftStrength",{get:function(){return o},set:function(e){o!==e&&(o=e,t._tiltShift&&(t._tiltShift.strength=o))}}),t.tiltShiftRadius=null,m(t,"tiltShiftRadius"),t},vignette:function(t){if(g(t,"vignetteRadius"))return t;var e;e=M(e=t),w(e,Q)&&_("addP3Vignette",(function(t,e,i,s){return void 0===t&&(t=.5),void 0===e&&(e=.5),void 0===i&&(i=.5),void 0===s&&(s=.5),this.add(new tt(this.camera,{x:t,y:e,radius:i,strength:s}))}));var i,s=p(t),n=.5,r=.5,a=.5;return Object.defineProperty(t,"vignetteRadius",{get:function(){return i},set:function(e){i!==e&&(null===(i=e)||!1===i?t._vignette&&(s.remove(t._vignette),t._vignette=void 0):(t._vignette||(t._vignette=s.addP3Vignette(n,r,i,a)),t._vignette.radius=i))}}),Object.defineProperty(t,"vignetteX",{get:function(){return n},set:function(e){n!==e&&(n=e,t._vignette&&(t._vignette.x=n))}}),Object.defineProperty(t,"vignetteY",{get:function(){return r},set:function(e){r!==e&&(r=e,t._vignette&&(t._vignette.y=r))}}),Object.defineProperty(t,"vignetteStrength",{get:function(){return a},set:function(e){a!==e&&(a=e,t._vignette&&(t._vignette.strength=a))}}),t.vignetteRadius=null,m(t,"vignetteRadius"),t},vintagePinhole:function(t){return v(t,"vintagePinhole"),t},wipe:function(t){if(g(t,"wipeLeft"))return t;U(t);var e,i,s,n,r=p(t),a=.1,o=function(){e=null,i=null,s=null,n=null},u=function(t){t._wipeEffect&&(r.remove(t._wipeEffect),t._wipeEffect=void 0)};return Object.defineProperty(t,"wipeLeft",{get:function(){return e},set:function(i){e!==i&&(o(),null===(e=i)||!1===e?u(t):(t._wipeEffect||(t._wipeEffect=r.addP3Wipe(a,0,0)),t._wipeEffect.direction=1,t._wipeEffect.axis=0,t._wipeEffect.progress=e))}}),Object.defineProperty(t,"wipeRight",{get:function(){return i},set:function(e){i!==e&&(o(),null===(i=e)||!1===i?u(t):(t._wipeEffect||(t._wipeEffect=r.addP3Wipe(a,0,0)),t._wipeEffect.direction=0,t._wipeEffect.axis=0,t._wipeEffect.progress=i))}}),Object.defineProperty(t,"wipeUp",{get:function(){return s},set:function(e){s!==e&&(o(),null===(s=e)||!1===s?u(t):(t._wipeEffect||(t._wipeEffect=r.addP3Wipe(a,0,0)),t._wipeEffect.direction=1,t._wipeEffect.axis=1,t._wipeEffect.progress=s))}}),Object.defineProperty(t,"wipeDown",{get:function(){return n},set:function(e){n!==e&&(o(),null===(n=e)||!1===n?u(t):(t._wipeEffect||(t._wipeEffect=r.addP3Wipe(a,0,0)),t._wipeEffect.direction=0,t._wipeEffect.axis=1,t._wipeEffect.progress=n))}}),Object.defineProperty(t,"wipeWidth",{get:function(){return a},set:function(e){a!==e&&(a=e,t._wipeEffect&&(t._wipeEffect.wipeWidth=a))}}),t.wipeLeft=null,m(t,"wipeLeft"),m(t,"wipeRight"),m(t,"wipeUp"),m(t,"wipeDown"),t}};var it=function(t,e){if(void 0===e)e=!0;else if("string"==typeof e)e={config:!0};else if(Array.isArray(e))for(var i=e,s=(e={},0),n=i.length;s<n;s++)e[i[s]]=!0;if(!0===e)for(var r in et)et[r](t);else for(var r in e)e[r]&&et[r]&&et[r](t);return t};const st=Phaser.Utils.Array.Remove;var nt={addGO(t,e){this.remove(t,!0),this.useTintFadeEffect(e)&&function(t,e){if(t.hasOwnProperty("tintR"))return t;void 0===e&&(e=16777215);var i=o(e),s=u(e),n=c(e);Object.defineProperty(t,"tint",{get:function(){return e},set:function(r){r=16777215&Math.floor(r),t.setTint&&t.setTint(r),e!==r&&(i=o(e=r),s=u(e),n=c(e))}}),Object.defineProperty(t,"tintR",{get:function(){return i},set:function(s){s=255&Math.floor(s),i!==s&&(i=s,t.tint=(255&s)<<16|65535&e)}}),Object.defineProperty(t,"tintG",{get:function(){return s},set:function(i){i=255&Math.floor(i),s!==i&&(s=i,t.tint=(255&i)<<8|16711935&e)}}),Object.defineProperty(t,"tintB",{get:function(){return n},set:function(i){i=255&Math.floor(i),n!==i&&(n=i,t.tint=255&i|16776960&e)}}),Object.defineProperty(t,"tintGray",{get:function(){return Math.floor((i+s+n)/3)},set:function(e){e=255&Math.floor(e),i===e&&s===e&&n===e||(i=e,s=e,n=e,t.tint=(255&e)<<16|(255&e)<<8|255&e)}}),t.tint=e}(e),this.viewportCoordinateEnable&&f(e,this.viewport),this.effectPropertiesConfig&&it(e,this.effectPropertiesConfig),e.setName(t).once("destroy",(function(){st(this.removedGOs,e),this.isEmpty&&this.emit("empty")}),this);var i=new this.BobClass(this,e,t);return this.bobs[t]=i,this},add(t,...e){var i=this.createGameObjectCallback,s=this.createGameObjectScope,n=i.call(s,this.scene,...e);this.addGO(t,n),null!=this.gameObjectDepth&&n.setDepth(this.gameObjectDepth);var r=this.get(t);return this.fadeBob(r,0,1),this}},rt={remove(t,e){var i=this.get(t);if(!i)return this;Array.isArray(i)||(i=[i]);var s=this;return i.forEach((function(t){delete s.bobs[t.name];var i=t.gameObject;s.removedGOs.push(i),i.setName(),e?t.destroy():s.fadeBob(t,void 0,0,(function(){t.destroy()}))})),this},removeAll(){var t=this.bobs;for(var e in t)this.remove(e);return this},clear(t){void 0===t&&(t=!0);var e=this.bobs;for(var i in e)t&&e[i].destroy(),delete e[i];return this.removedGOs.length=0,this}},at={hasProperty(t,e){var i=r(t)?this.get(t):this.getFitst(t);return!!i&&i.hasProperty(e)},getProperty(t,e){var i=r(t)?this.get(t):this.getFitst(t);if(i)return i.getProperty(e)},isNumberProperty(t,e){return"number"==typeof this.getProperty(t,e)},setProperty(t,e,i){var s=this.get(t);return s?(Array.isArray(s)||(s=[s]),this.symbols&&"string"==typeof i&&this.isNumberProperty(t,e)&&(i in this.symbols?i=this.symbols[i]:console.warn(`Can't find symbol ${i}`)),s.forEach((function(t){t.setProperty(e,i)})),this):this},easeProperty(t,e){var i=this.get(t);if(!i)return this;Array.isArray(i)||(i=[i]);var s=e.value,n=e.property;return this.symbols&&"string"==typeof s&&this.isNumberProperty(t,n)&&s in this.symbols&&(e.value=this.symbols[s]),i.forEach((function(t){t.easeProperty(e)})),this},hasTweenTask(t,e){var i=r(t)?this.get(t):this.getFitst(t);return!!i&&i.tweens.hasOwnProperty(e)},getTweenTask(t,e){var i=r(t)?this.get(t):this.getFitst(t);return i&&i.tweens[e]||null}},ot={hasMethod(t,e){var i=r(t)?this.get(t):this.getFitst(t);return!!i&&i.hasMethod(e)},call(t,e,...i){var s=this.get(t);return s?(Array.isArray(s)||(s=[s]),s.forEach((function(t){t.call(e,...i)})),this):this}},ut={hasData(t,e){var i=r(t)?this.get(t):this.getFitst(t);return!!i&&i.hasData(e)},getData(t,e){if(this.has(t))return this.get(t).getData(e)},setData(t,e,i){var s=this.get(t);return s?(Array.isArray(s)||(s=[s]),s.forEach((function(t){t.setData(e,i)})),this):this}};const ct={tint:0,alpha:1,revealUp:2,revealDown:3,revealLeft:4,revealRight:5};var ht={setGOFadeMode(t){return"string"==typeof t&&(t=ct[t]),this.fadeMode=t,this},setGOFadeTime(t){return this.fadeTime=t,this},useTintFadeEffect(t){return(void 0===this.fadeMode||0===this.fadeMode)&&this.fadeTime>0&&void 0!==t.setTint},useAlphaFadeEffect(t){return(void 0===this.fadeMode||1===this.fadeMode)&&this.fadeTime>0&&void 0!==t.setAlpha},useRevealEffect(t){return this.fadeMode>=2&&this.fadeMode<=5&&this.fadeTime>0&&(t.preFX||t.postFX)},fadeBob(t,e,i,s){var n=t.gameObject;if(this.useTintFadeEffect(n))void 0!==e&&t.setProperty("tintGray",255*e),t.easeProperty({property:"tintGray",value:Math.floor(255*i),duration:this.fadeTime,delay:0,ease:"Linear",repeat:0,yoyo:!1,from:!1,complete:s});else if(this.useAlphaFadeEffect(n))void 0!==e&&t.setProperty("alpha",e),t.easeProperty({property:"alpha",value:i,duration:this.fadeTime,delay:0,ease:"Linear",repeat:0,yoyo:!1,from:!1,complete:s});else if(this.useRevealEffect(n)){var r;switch(it(n,"reveal"),this.fadeMode){case 2:r="revealUp";break;case 3:r="revealDown";break;case 4:r="revealLeft";break;case 5:r="revealRight"}void 0===e&&(e=0),n[r]=e,t.easeProperty({property:r,value:i,duration:this.fadeTime,delay:0,ease:"Linear",repeat:0,yoyo:!1,from:!1,complete:s}),t.getTweenTask(r).once("complete",(function(){n[r]=null}))}else s&&s(n);return this}},lt=function(t){return void 0!==t.displayWidth?t.displayWidth:t.width},dt=function(t){return void 0!==t.displayHeight?t.displayHeight:t.height};Phaser.Geom.Rectangle;const ft=Phaser.Math.Vector2,gt=Phaser.Math.RotateAround;Phaser.GameObjects.Container;var pt=void 0,mt=function(t,e,i){return void 0===i&&(i=!1),0!==t.rotation&&gt(e,t.x,t.y,t.rotation),i&&t.parentContainer&&t.parentContainer.getBoundsTransformMatrix().transformPoint(e.x,e.y,e),e};const vt=Phaser.Utils.Objects.GetValue;var bt=function(t,e,i,s,n,r,a,o){if(t.getBounds||void 0!==t.width&&void 0!==t.height){var u=function(t,e,i){return void 0===e?e=new ft:!0===e&&(void 0===pt&&(pt=new ft),e=pt),t.getTopLeft?t.getTopLeft(e,i):(e.x=t.x-lt(t)*t.originX,e.y=t.y-dt(t)*t.originY,mt(t,e,i))}(t,yt[0],o);u.x-=a,u.y-=a;var c=function(t,e,i){return void 0===e?e=new ft:!0===e&&(void 0===pt&&(pt=new ft),e=pt),t.getTopRight?t.getTopRight(e,i):(e.x=t.x-lt(t)*t.originX+lt(t),e.y=t.y-dt(t)*t.originY,mt(t,e,i))}(t,yt[1],o);c.x+=a,c.y-=a;var h=function(t,e,i){return void 0===e?e=new ft:!0===e&&(void 0===pt&&(pt=new ft),e=pt),t.getBottomRight?t.getBottomRight(e,i):(e.x=t.x-lt(t)*t.originX+lt(t),e.y=t.y-dt(t)*t.originY+dt(t),mt(t,e,i))}(t,yt[2],o);h.x+=a,h.y+=a;var l=function(t,e,i){return void 0===e?e=new ft:!0===e&&(void 0===pt&&(pt=new ft),e=pt),t.getBottomLeft?t.getBottomLeft(e,i):(e.x=t.x-lt(t)*t.originX,e.y=t.y-dt(t)*t.originY+dt(t),mt(t,e,i))}(t,yt[3],o);l.x-=a,l.y+=a,null!==n&&e.fillStyle(n,r).fillPoints(yt,!0,!0),null!==i&&e.lineStyle(s,i).strokePoints(yt,!0,!0)}},yt=[{x:0,y:0},{x:0,y:0},{x:0,y:0},{x:0,y:0}],Et=function(t,e){var i,s=t.cameras;if(void 0===e)i=s.main;else switch(typeof e){case"string":i=s.getCamera(e);break;case"number":i=s.cameras[e];break;default:i=e}return i},kt={setCamera(t,e){var i=this.get(t);if(!i)return this;var s=Et(this.scene,e);return s?(i.gameObject.cameraFilter=4294967295^s.id,i.camera=s,this):this},getCamera(t){var e=this.get(t);return e?e.camera:null}},Mt={drawGameObjectsBounds:function(t,e){return this.forEachGO((function(i){i.drawBounds?i.drawBounds(t,e):function(t,e,i){var s,n,r,a,o,u;if("number"==typeof i?s=i:(s=vt(i,"color"),n=vt(i,"lineWidth"),r=vt(i,"fillColor"),a=vt(i,"fillAlpha"),o=vt(i,"padding"),u=vt(i,"includeParent")),void 0===s&&(s=16777215),void 0===n&&(n=1),void 0===r&&(r=null),void 0===a&&(a=1),void 0===o&&(o=0),void 0===u&&(u=!0),Array.isArray(t))for(var c=0,h=t.length;c<h;c++)bt(t[c],e,s,n,r,a,o,u);else bt(t,e,s,n,r,a,o,u)}(i,t,e)})),this}};Object.assign(Mt,a,nt,rt,at,ot,ut,ht,kt);const wt=Phaser.Cameras.Scene2D.BaseCamera,_t=Phaser.Geom.Rectangle;var Ot=function(t,e,i){return e instanceof wt||(i=e,e=void 0),void 0===i?i=new _t:!0===i&&(i=Tt),e?t.scale.getViewPort(e,i):t.scale.getViewPort(i)},Tt=new _t;const St=Phaser.Utils.Objects.GetValue;class xt{constructor(t,e){this.scene=t,this.BobClass=St(e,"BobClass",n),this.setCreateGameObjectCallback(St(e,"createGameObject"),St(e,"createGameObjectScope")),this.setEventEmitter(St(e,"eventEmitter",void 0)),this.setGameObjectDepth(St(e,"depth",void 0));var i=St(e,"fade",500);"number"==typeof i?(this.setGOFadeMode(),this.setGOFadeTime(i)):(this.setGOFadeMode(St(i,"mode")),this.setGOFadeTime(St(i,"time",500)));var s=St(e,"viewportCoordinate",!1);!1!==s?(this.setViewportCoordinateEnable(St(e,"enable",!0)),this.setViewport(St(s,"viewport"))):this.setViewportCoordinateEnable(!1);var r=St(e,"effectProperties",!1);this.setEffectPropertiesConfig(r),this.setSymbols(St(e,"symbols")),this.bobs={},this.removedGOs=[],this._timeScale=1,this.name=St(e,"name")}destroy(t){this.clear(!t),this.createGameObjectCallback=void 0,this.viewport=void 0,this.scene=void 0}set timeScale(t){if(this._timeScale!==t){this._timeScale=t;var e=this.bobs;for(var i in e)e[i].setTimeScale(t)}}get timeScale(){return this._timeScale}setTimeScale(t){return this.timeScale=t,this}setCreateGameObjectCallback(t,e){return this.createGameObjectCallback=t,this.createGameObjectScope=e,this}setGameObjectDepth(t){return this.gameObjectDepth=t,this}setViewportCoordinateEnable(t){return void 0===t&&(t=!0),this.viewportCoordinateEnable=t,this}setEffectPropertiesConfig(t){return void 0===t&&(t=!0),this.effectPropertiesConfig=t,this}setViewport(t){return void 0===t&&(t=Ot(this.scene,this.scene.cameras.main)),this.viewport=t,this}setSymbols(t){return this.symbols=t,this}get isEmpty(){return function(t){for(var e in t)return!1;return!0}(this.bobs)&&0===this.removedGOs.length}}Object.assign(xt.prototype,t,Mt);const Ct=Phaser.GameObjects.GameObject,Pt=Phaser.GameObjects.Layer,jt=Phaser.GameObjects.Layer;var Gt=function(t){var e=t.displayList;return function(t){return t instanceof jt}(e)?e:null},Lt={getLayer(t){return this.getGO(t)},getLayers(t){return void 0===t&&(t=[]),this.forEachGO((function(e){t.push(e)})),function(t,e){if(t.length<=1)return t;var i;void 0===e&&(e=!1);for(var s=0,n=t.length;s<n;s++){var r=t[s];if(r.displayList?i=r.displayList:r.parentContainer&&(i=r.parentContainer.list),i)break}i||(i=r.scene.sys.displayList),i.depthSort&&(i.depthSort(),i=i.list),e?t.sort((function(t,e){return i.indexOf(e)-i.indexOf(t)})):t.sort((function(t,e){return i.indexOf(t)-i.indexOf(e)}))}(t,!1),t},addToLayer(t,e){var i=this.getGO(t);if(i){Array.isArray(e)||(e=[e]);for(var s=0,n=e.length;s<n;s++){var r=e[s];r.isRexContainerLite?r.addToLayer(i):i.add(r)}return void