bard-legends-framework 1.9.1 → 1.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,67 +1,45 @@
1
- 'use strict';var actionsLib=require('actions-lib');require('reflect-metadata');var helpersLib=require('helpers-lib'),N=require('pixi.js'),scriptEngineLib=require('script-engine-lib'),U=require('p2');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var N__namespace=/*#__PURE__*/_interopNamespace(N);var U__default=/*#__PURE__*/_interopDefault(U);var gr=Object.defineProperty;var h=(o,t)=>gr(o,"name",{value:t,configurable:true});function q(){return class{static{h(this,"GatewayBase");}}}h(q,"Gateway");function Di(o,t){let e=o.prototype,i=Object.getPrototypeOf(t);for(let r of Reflect.ownKeys(i)){if(typeof r!="string"||r==="constructor")continue;let s=t[r];if(typeof s=="function"){if(Object.prototype.hasOwnProperty.call(e,r))throw new Error(`Gateway "${o.name}": method "${r}" is already registered by another controller.`);e[r]=s.bind(t);}}}h(Di,"bindControllerToGateway");var R=class{static{h(this,"BardLegendsHardReset");}static{this.ƀfh=new actionsLib.Action;}static{this.onHardReset=this.ƀfh.notifier;}static hardReset(){actionsLib.ActionLib.hardReset(),this.ƀfh.trigger();}};function u(){return function(o){let t=S.ƀep(o);o.$meta={paramtypes:t,type:"service"};}}h(u,"ServiceDecorator");var S=class{static{h(this,"Service");}static{this.ƀju=new Map;}static get(t){let e=this.ƀju.get(t);if(!e){if(!t.$meta)throw new Error(`Service: service class is not decorated by @ServiceDecorator(), class: "${t.name}"`);let i=this.ƀjj(t.$meta.paramtypes);e=new t(...i),this.ƀju.set(t,e);}return e}static ƀep(t){let e=Reflect.getMetadata("design:paramtypes",t)||[];return e.some(i=>!i)&&console.error(`Circular dependency: ${t.name}`),e.some(i=>i.name==="Object")&&console.error(`Some injected parameters are failed to resolve. Check if it is imported as value, if not remove the "type" keyword. Class: "${t.name}"`),e}static ƀjj(t){return t.map(i=>{if(i&&i.$meta?.type==="service")return this.get(i);throw new Error(`Injected parameter has to be decorated with @ServiceDecorator(), class: "${i.name}"`)})}};R.onHardReset.subscribe(()=>{S.ƀju=new Map;}).attachToRoot();function Q(o){return function(t){let e=S.ƀep(t);if(e.some(i=>!i))console.error(`Circular dependency: ${t.name}`);else {let i=S.ƀjj(e);i.some(s=>s===void 0)&&console.error(i,e,t.name);let r=new t(...i);Di(o,r);}t.$meta={type:"controller"};}}h(Q,"ControllerDecorator");var m=class o{static{h(this,"UpdateCycle");}static{this.ƀad=new actionsLib.Action;}static{this.beforeSceneUpdateAction=this.ƀad.notifier;}static{this.ƀjn=new actionsLib.Action;}static{this.sceneUpdateAction=this.ƀjn.notifier;}static{this.ƀf=new actionsLib.Action;}static{this.afterSceneUpdateAction=this.ƀf.notifier;}static{this.ƀll=0;}static{this.ƀlt=void 0;}static wait(t){let e=this.ƀll+t;return actionsLib.SingleEvent.create(i=>{let r=o.beforeSceneUpdateAction.subscribe(s=>{s.time>=e&&i();}).attachToRoot();return ()=>r.destroy()})}static registerUpdateModifier(t){if(!this.ƀlt)this.ƀlt=t;else throw new Error("UpdateCycle: There can only one update modifier!")}static cleanUpdateModifier(){this.ƀlt=void 0;}static triggerUpdateTick(t){this.ƀlt&&(t=this.ƀlt(this.ƀll,t)),this.ƀll+=t,this.ƀgj=t,t>0&&(o.ƀad.trigger({time:this.ƀll,delta:t}),o.ƀjn.trigger({time:this.ƀll,delta:t}),o.ƀf.trigger({time:this.ƀll,delta:t}));}static get lastDelta(){return this.ƀgj}static{this.ƀgj=0;}};R.onHardReset.subscribe(()=>{m.ƀad.clear(),m.ƀjn.clear(),m.ƀf.clear(),m.ƀlt=void 0,m.ƀll=0;}).attachToRoot();var O=class o{static{h(this,"EntityStoreHelper");}static{this.ƀax=new Map;}static registerEntityClass(t){this.ƀax.set(t.id,new Map);}static registerEntity(t){let e=this.ƀax.get(t.classID);if(!e)throw new Error(`EntityStoreHelper: No entity class is found. Be sure that entity is decorated with EntityDecorator! Name: "${t.constructor.name}"`);e.set(t.id,t);}static unregisterEntity(t,e){let i=t.id;this.ƀax.get(i)?.delete(e);}static getEntity(t,e){return this.ƀax.get(t.id)?.get(e)}static getSingleton(t){let e=o.getEntities(t);if(e.length>1)throw new Error(`EntityStoreHelper: selectSingleton is called with an entity that has multiple instances! Name: "${this.name}"`);return e[0]}static getSingletonOrFail(t){let e=this.getSingleton(t);if(!e)throw new Error(`EntityStoreHelper: selectSingleton is called with an entity that has no instance! Name: "${this.name}"`);return e}static getEntities(t){let e=this.ƀax.get(t.id);return Array.from(e.values())}};R.onHardReset.subscribe(()=>{O.ƀax.clear();}).attachToRoot();function Qe(o){return function(t){t.$meta={paramtypes:S.ƀep(t),viewInstances:new Map,entity:o.entity,type:"view"},rt.registerView(t,o.entity);}}h(Qe,"ViewDecorator");var mt=class extends actionsLib.IDAttachable{static{h(this,"View");}static getInstance(t){return this.$meta.entity.validateID(t)?this.$meta.viewInstances.get(t):void 0}static getInstanceOrFail(t){if(!this.$meta.entity.validateID(t))throw new Error(`View: getInstance is called with entity id: "${t}", that is not belonging to the class: "${this.$meta.entity}"`);let i=this.$meta.viewInstances.get(t);if(!i)throw new Error(`View: getInstanceOrFail is called with entity id: "${t}", that is not found!`);return i}constructor(){super(),this.update=()=>{},this.attachToRoot(),this.ƀde=rt.entityID,this.ƀew().set(this.ƀde,this);}destroy(){this.destroyed||(super.destroy(),this.ƀew().delete(this.ƀde));}ƀew(){return this.constructor.$meta.viewInstances}};var rt=class o{static{h(this,"EntityViewsHelper");}static{this.ƀmd=new Map;}static registerView(t,e){o.ƀmd.has(e)||o.ƀmd.set(e,[]);let i=o.ƀmd.get(e);i&&i.push(t),O.getEntities(e).forEach(s=>{this.ƀck(s,t);});}static ƀck(t,e){try{let i=S.ƀjj(e.$meta.paramtypes.slice(1));o.entityID=t.id;let r=new e(t,...i);t.destroyed?r.destroy():t.ƀmc.ƀme.push(r);}catch(i){console.error(i);}}constructor(t){this.ƀdd=t,this.ƀme=[];}createViews(){if(!this.ƀdd.destroyed){let t=o.ƀmd.get(this.ƀdd.constructor);t&&t.forEach(e=>{o.ƀck(this.ƀdd,e);});}}updateViews(t,e){for(let i=0;i<this.ƀme.length;i++){let r=this.ƀme[i];r.destroyed||r.update(t,e);}}destroyViews(){this.ƀme.forEach(t=>{t.destroy();});}};R.onHardReset.subscribe(()=>{rt.ƀmd=new Map;}).attachToRoot();function yt(){return function(o){o.$meta={type:"entity"},O.registerEntityClass(o);}}h(yt,"EntityDecorator");var W=class extends actionsLib.IDAttachable{static{h(this,"Entity");}static getInstanceByID(t){if(t)return O.getEntity(this,t)}static getInstanceByIDOrFail(t){let e=O.getEntity(this,t);if(!e)throw new Error(`Entity: entity is not found! Name: "${this.name}", id: "${t}"`);return e}static getEntities(){return O.getEntities(this)}constructor(){super(),this.ƀmc=new rt(this),O.registerEntity(this),m.sceneUpdateAction.subscribe(t=>{this.destroyed||(this.ƀlr(t.time,t.delta),this.ƀmc.updateViews(t.time,t.delta));}).attach(this);}destroy(){this.destroyed||(this.ƀmc.destroyViews(),O.unregisterEntity(this.constructor,this.id),super.destroy());}attach(t){return super.attach(t),this.ƀmc.createViews(),this}attachByID(t){return super.attachByID(t),this.ƀmc.createViews(),this}attachToRoot(){return super.attachToRoot(),this.ƀmc.createViews(),this}ƀlr(t,e){}};var gt=class o extends W{static{h(this,"SingletonEntity");}static{this.ƀcl=new WeakMap;}static ƀeb(t){let e=o.ƀcl.get(t);return e||(e=new actionsLib.SingleAction,o.ƀcl.set(t,e)),e}static ƀlq(t){o.ƀcl.delete(t);}static getInstanceAsync(){let t=O.getSingleton(this);return t&&!t.destroyed?actionsLib.SingleEvent.instant(t):o.ƀeb(this).toSingleEvent()}static continuesSubscription(){let t=h((e,i)=>{this.getInstanceAsync().tap(s=>{e({type:"open",value:s}),s.onDestroy().tap(()=>{e({type:"close",value:s}),t(e,i);}).attach(i);}).attach(i);},"subscribe");return actionsLib.Sequence.create((e,i)=>t(e,i.attachable))}static getInstance(){return O.getSingleton(this)}static getInstanceOrFail(){return O.getSingletonOrFail(this)}constructor(){if(super(),this.constructor.getEntities().length>1)throw this.attachToRoot(),new Error(`SingletonEntity: entity is decorated as singleton but multiple instances are created! "${this}"`);this.onDestroy().tap(()=>o.ƀlq(this.constructor)).attachToRoot(),o.ƀeb(this.constructor).resolve(this);}};function Cr(){return function(o){return o.$meta={paramtypes:S.ƀep(o),type:"scene"},o}}h(Cr,"SceneDecorator");var fe=class o extends actionsLib.IDAttachable{static{h(this,"Scene");}static{this.ƀgc=new actionsLib.Variable(false);}static{this.isTransitioning=this.ƀgc.notifier;}static{this.ƀb=new actionsLib.Variable(void 0);}static{this.activeScene=this.ƀb.notifier;}static getActiveSceneOrFail(){if(!o.ƀb.value)throw new Error("Scene: getActiveSceneOrFail is called when there is no active scene!");return o.ƀb.value}static cancelActiveScene(){return o.ƀb.value?o.ƀb.value.ƀj("cancel"):actionsLib.SingleEvent.instant()}static isActive(){return o.ƀb.value instanceof this}static getInstance(){return o.ƀb.value instanceof this?o.ƀb.value:void 0}static getInstanceOrFail(){if(!o.ƀb.value)throw new Error("Scene: getInstance is called when there is no active scene!");if(!(o.ƀb.value instanceof this))throw new Error(`Scene: getInstance is called while "${this.name}" was not the active scene. Current scene is: "${o.ƀb.value}"!`);return o.ƀb.value}static open(...t){if(o.ƀgc.value)throw new Error("Scene: you cannot open a scene while a scene is transitioning!");if(o.ƀb.value)throw new Error("Scene: you cannot open a scene while there is already another active scene!");let e=t[0];o.ƀgc.value=true;let i=S.ƀjj(this.$meta.paramtypes),r=new this(...i).attachToRoot();return o.ƀb.set(r),r.init(e).map(()=>(o.ƀgc.value=false,r)).chainToRoot()}constructor(){super(),this.ƀhm=new actionsLib.SingleAction,this.onClose=this.ƀhm.notifier,m.sceneUpdateAction.subscribe(t=>this.update(t.time,t.delta)).attach(this);}close(...t){if(o.ƀb.value!==this)throw new Error("Internal Error: Scene instance is accessed while it is not the active scene!");if(o.ƀgc.value)throw new Error("Scene: you cannot close a scene while a scene is transitioning!");o.ƀgc.value=true;let e=t[0];return this.ƀj(e).map(()=>(this.ƀhm.resolve(e),e)).chainToRoot()}ƀj(t){return this.prepareToClose(t).tap(()=>{super.destroy(),o.ƀb.set(void 0),o.ƀgc.value=false;}).chainToRoot()}destroy(){throw new Error('To close a scene use the "close()" function')}};R.onHardReset.subscribe(()=>{fe.ƀb.set(void 0);}).attachToRoot();var V=class{static{h(this,"AnimationInterpolationFunctions");}static boomerangTime(t){return 1-Math.abs(t-.5)*2}static lineer(t){return t}static easeIn(t){return Math.pow(t,2)}static easeOut(t){return 1-Math.pow(1-t,2)}static easeInCubic(t){return Math.pow(t,3)}static easeOutCubic(t){return 1-Math.pow(1-t,3)}static easeInOut(t){return t<.5?2*t*t:(t-=1,1-2*t*t)}static easeInOutCubic(t){let e=2*t-2;return t<.5?4*Math.pow(t,3):(t-1)*Math.pow(e,2)+1}static blink(t){return t>.5?1:0}},Or=class{static{h(this,"AnimationLineer");}start(){}multiplierFunction(t){return V.lineer(t)}},Dr=class{static{h(this,"AnimationEaseIn");}start(){}multiplierFunction(t){return V.easeIn(t)}},Mr=class{static{h(this,"AnimationEaseOut");}start(){}multiplierFunction(t){return V.easeOut(t)}},Br=class{static{h(this,"AnimationEaseInOut");}start(){}multiplierFunction(t){return V.easeInOut(t)}},Gr=class{static{h(this,"AnimationEaseInCubic");}start(){}multiplierFunction(t){return V.easeInCubic(t)}},_r=class{static{h(this,"AnimationEaseOutCubic");}start(){}multiplierFunction(t){return V.easeOutCubic(t)}},Fr=class{static{h(this,"AnimationEaseInOutCubic");}start(){}multiplierFunction(t){return V.easeInOutCubic(t)}},Vr=class{static{h(this,"AnimationBlink");}start(){}multiplierFunction(t){return V.blink(t)}},Bi=class{static{h(this,"AnimationFlicker");}start(){this.ƀlm=new Array(10).fill(0),helpersLib.Random.integerBetween(0,9),this.ƀlm[helpersLib.Random.integerBetween(0,9)]=Math.random(),Math.random()<.3&&(helpersLib.Random.integerBetween(0,9),this.ƀlm[helpersLib.Random.integerBetween(0,9)]=Math.random()),Math.random()<.2&&(helpersLib.Random.integerBetween(0,9),this.ƀlm[helpersLib.Random.integerBetween(0,9)]=Math.random());}multiplierFunction(t){let e=Math.floor(t*10);return this.ƀlm[e]}},x=class{static{h(this,"Animations");}static{this.lineer=new Or;}static{this.easeIn=new Dr;}static{this.easeOut=new Mr;}static{this.easeInOut=new Br;}static{this.easeInCubic=new Gr;}static{this.easeOutCubic=new _r;}static{this.easeInOutCubic=new Fr;}static{this.blink=new Vr;}};exports.ReAnimateHandlingType=void 0;(function(o){o[o.ThrowError=1]="ThrowError",o[o.IgnoreNewAnimation=2]="IgnoreNewAnimation",o[o.CompletePrevious=3]="CompletePrevious";})(exports.ReAnimateHandlingType||(exports.ReAnimateHandlingType={}));exports.AnimationsCompletionHandlingType=void 0;(function(o){o[o.ReturnToOriginal=1]="ReturnToOriginal",o[o.StayInCurrentState=2]="StayInCurrentState",o[o.JumpToEnd=3]="JumpToEnd",o[o.Loop=4]="Loop";})(exports.AnimationsCompletionHandlingType||(exports.AnimationsCompletionHandlingType={}));var I=class o{static{h(this,"Animator");}static{this.ƀl=new WeakMap;}static ƀdu(t){let e=o.ƀl.get(t);return e||(e=new helpersLib.MapToWeakRefs,o.ƀl.set(t,e)),e}get animating(){return this.ƀhv!==void 0}get target(){return this.ƀld}get value(){return this.ƀlw||(this.ƀlw=new actionsLib.Variable(this.ƀld)),this.ƀlw.notifier}get paused(){return this.ƀie!==void 0}set paused(t){this.ƀie=t?true:void 0;}constructor(t,e,i){this.ƀgd=false,this.ƀkh=false,this.ƀld=t,this.ƀhx={duration:200,animation:x.lineer,reAnimateHandling:exports.ReAnimateHandlingType.ThrowError,completionHandling:exports.AnimationsCompletionHandlingType.StayInCurrentState,...i},this.ƀm=helpersLib.Comparator.isArray(e)?e:[e],this.ƀgq(t,this.ƀm);}animate(t,e){let i={...this.ƀhx,...e},r=this.ƀhv;if(this.ƀhv)switch(i.reAnimateHandling){case exports.ReAnimateHandlingType.ThrowError:throw new Error("Animator: new animation triggered while another is not complete yet.");case exports.ReAnimateHandlingType.IgnoreNewAnimation:return actionsLib.SingleEvent.instant().notIdle();case exports.ReAnimateHandlingType.CompletePrevious:this.ƀjw(i.completionHandling,this.ƀhv.ƀiz,true);break;default:{throw new Error}}return actionsLib.SingleEvent.create(n=>{this.ƀgd&&(this.ƀkh=true);let a={};for(let c of this.ƀm)a[c]={ƀkx:this.ƀld[c],ƀlf:t[c]};let l={ƀcy:i.duration,ƀcz:0,ƀiz:a,ƀbj:i.completionHandling,ƀn:i.animation,ƀbi:n};if(l.ƀbj!==exports.AnimationsCompletionHandlingType.Loop&&this.ƀfz(l)){this.ƀhv=void 0,n(),r?.ƀbi(),this.ƀay();return}return l.ƀn.start(),this.ƀhv=l,this.ƀdc(),r?.ƀbi(),()=>{this.ƀhv===l&&(this.ƀld instanceof actionsLib.Attachable&&this.ƀld.destroyed||this.ƀjw(l.ƀbj,l.ƀiz,true),this.ƀhv=void 0,this.ƀay());}}).notIdle()}set(t){this.ƀmj(e=>t[e]),this.ƀhv?.ƀbi();}completeAnimation(t){if(this.ƀhv){t=t??this.ƀhv.ƀbj,this.ƀjw(t,this.ƀhv.ƀiz,true);let e=this.ƀhv.ƀbi;this.ƀhv=void 0,e();}}ƀdc(){this.ƀls||(this.ƀls=m.beforeSceneUpdateAction.subscribe(t=>{if(!this.ƀie){this.ƀgd=true;try{let e=this.ƀhv;if(!e)return;if(e.ƀcz+=t.delta,e.ƀcz>=e.ƀcy)if(e.ƀbj===exports.AnimationsCompletionHandlingType.Loop)e.ƀcz%=e.ƀcy,e.ƀn.start();else {this.ƀjw(e.ƀbj,e.ƀiz,!1),this.ƀhv=void 0,e.ƀbi(),this.ƀay();return}let i=e.ƀn.multiplierFunction(e.ƀcz/e.ƀcy);this.ƀmj(r=>{let s=e.ƀiz[r];return (s.ƀlf-s.ƀkx)*i+s.ƀkx});}finally{this.ƀgd=false,this.ƀkh&&(this.ƀkh=false,this.ƀcr(),this.ƀdc());}}}).attachToRoot());}ƀfz(t){return this.ƀm.every(e=>this.ƀld[e]===t.ƀiz[e].ƀlf)}ƀjw(t,e,i){switch(t){case exports.AnimationsCompletionHandlingType.ReturnToOriginal:case exports.AnimationsCompletionHandlingType.Loop:this.ƀmj(r=>e[r].ƀkx);break;case exports.AnimationsCompletionHandlingType.JumpToEnd:this.ƀmj(r=>e[r].ƀlf);break;case exports.AnimationsCompletionHandlingType.StayInCurrentState:i||this.ƀmj(r=>e[r].ƀlf);break;default:{throw new Error}}}ƀmj(t){let e=false;for(let i of this.ƀm){let r=t(i);this.ƀld[i]!==r&&(e=true,this.ƀld[i]=r);}e&&this.ƀlw?.set(this.ƀld);}ƀay(){this.ƀhv||this.ƀcr();}ƀcr(){this.ƀls?.destroy(),this.ƀls=void 0;}ƀgq(t,e){let i=o.ƀdu(t);for(let r of e){if(i.has(r))throw new Error(`Animator: target property is already animated! Target: "${JSON.stringify(t,void 0,2)}", Property: "${r}"`);i.set(r,this);}}};exports.ContainerEventType=void 0;(function(o){o.Click="click",o.MouseOver="mouseover",o.MouseOut="mouseout",o.PointerDown="pointerdown",o.PointerUp="pointerup",o.PointerUpOutside="pointerupoutside",o.PointerMove="pointermove",o.PointerCancel="pointercancel",o.PointerOver="pointerover",o.PointerOut="pointerout",o.PointerEnter="pointerenter",o.PointerLeave="pointerleave",o.Added="added",o.Removed="removed",o.Update="update",o.Change="change",o.Wheel="wheel";})(exports.ContainerEventType||(exports.ContainerEventType={}));exports.Cursor=void 0;(function(o){o.Default="default",o.Pointer="pointer";})(exports.Cursor||(exports.Cursor={}));var ye=class extends actionsLib.IDAttachable{static{h(this,"ContainerAttributes");}constructor(){super(),this.ƀhd=false,this.ƀdm=false,this.ƀjl=1,this.ƀw=1,this.ƀir=new N__namespace.Container;}get size(){return this.getSize()}set size(t){this.setSize(t);}getSize(){return new helpersLib.Vector(this.ƀir.width,this.ƀir.height)}setSize(t){return this.ƀir.width=t.x,this.ƀir.height=t.y,this}setPosition(t,e){if(e?.holdFrom){let i=this.ƀir.getLocalBounds(),r=new helpersLib.Vector(this.ƀir.scale.x,this.ƀir.scale.y),s=new helpersLib.Vector(i.x,i.y).multiply(r),n=new helpersLib.Vector(i.width,i.height).multiply(r),a=s.add(n.multiply(e.holdFrom));t=t.subtract(a);}return e?.round!==false&&(t=t.round({rollHalfsDown:true})),this.position=t,this}get position(){return new helpersLib.Vector(this.ƀir.x,this.ƀir.y)}set position(t){this.ƀir.position=t;}get x(){return this.ƀir.x}set x(t){this.ƀir.x=t;}get y(){return this.ƀir.y}set y(t){this.ƀir.y=t;}on(t){return actionsLib.Sequence.create(e=>{let i=h(r=>{if(t===exports.ContainerEventType.Wheel){let n=r.deltaY;e({deltaY:n});}else e(void 0);},"handle");return this.ƀir.on(t,i),()=>this.ƀir.off(t,i)}).notIdle()}setRotation(t){return this.rotation=t,this}get rotation(){return new helpersLib.Radian(this.ƀir.rotation)}set rotation(t){this.ƀir.rotation=t.value;}get rotationValue(){return this.rotation.value}set rotationValue(t){this.rotation=new helpersLib.Radian(t);}setZIndex(t){return this.zIndex=t,this}get zIndex(){return this.ƀir.zIndex}set zIndex(t){this.ƀir.zIndex=t;}setSkewX(t){return this.skewX=t,this}get skewX(){return new helpersLib.Radian(this.ƀir.skew.x)}set skewX(t){this.ƀir.skew.x=t.value;}setSkewY(t){return this.skewY=t,this}get skewY(){return new helpersLib.Radian(this.ƀir.skew.y)}set skewY(t){this.ƀir.skew.y=t.value;}setSortableChildren(t){return this.sortableChildren=t,this}get sortableChildren(){return this.ƀir.sortableChildren}set sortableChildren(t){this.ƀir.sortableChildren=t;}setAlpha(t){return this.ƀir.alpha=t,this}get alpha(){return this.ƀir.alpha}set alpha(t){this.ƀir.alpha=t;}setInteractive(t){return this.interactive=t,this}get interactive(){return this.ƀir.interactive}set interactive(t){t?this.ƀir.eventMode="dynamic":this.ƀir.eventMode="none";}setCursor(t){return this.cursor=t,this}get cursor(){return this.ƀir.cursor}set cursor(t){this.ƀir.cursor=t;}getMask(){throw new Error("ContainerAttributes: mask is not available!")}setMask(t){return t?(this.ƀir.addChild(t.ƀir),this.ƀir.mask=t.getMask(),this.ƀgt=t):(this.ƀgt&&this.ƀir.removeChild(this.ƀgt.ƀir),this.ƀir.mask=null),this}hitTest(t){if(this.ƀir.parent)if(this.ƀir.hitArea){let e=this.ƀir.toLocal(t);return this.ƀir.hitArea.contains(e.x,e.y)}else return this.ƀir.getBounds().contains(t.x,t.y);else return false}get boundingBox(){let t=this.ƀir.getLocalBounds();return new helpersLib.Rectangle(new helpersLib.Vector(t.x,t.y),new helpersLib.Vector(t.x+t.width,t.y+t.height))}ignoreBounds(t=true){return t?(this.ƀhy||(this.ƀhy=this.ƀir.calculateBounds),this.ƀir.calculateBounds=()=>this.ƀir._bounds.clear()):this.ƀhy&&(this.ƀir.calculateBounds=this.ƀhy),this}setMirror(t=false){return this.mirror=t,this}get mirror(){return this.ƀhd}set mirror(t){this.ƀhd=t,this.ƀlu();}setFlip(t=false){return this.flip=t,this}get flip(){return this.ƀdm}set flip(t){this.ƀdm=t,this.ƀlu();}setScale(t){return this.scale=t,this}get scale(){return this.ƀjl}set scale(t){this.ƀjl=t,this.ƀlu();}setAspectRatio(t){return this.aspectRatio=t,this}get aspectRatio(){return this.ƀw}set aspectRatio(t){this.ƀw=t,this.ƀlu();}ƀlu(){this.ƀir.scale.set(this.ƀjl,this.ƀjl),this.ƀw<1?this.ƀir.scale.x*=this.ƀw:this.ƀw>1&&(this.ƀir.scale.y/=this.ƀw),this.ƀhd&&(this.ƀir.scale.x*=-1),this.ƀdm&&(this.ƀir.scale.y*=-1);}};var D=2;exports.BlendMode=void 0;(function(o){o[o.Normal=0]="Normal",o[o.Add=1]="Add",o[o.Screen=3]="Screen",o[o.Luminosity=16]="Luminosity",o[o.ColorDodge=7]="ColorDodge";})(exports.BlendMode||(exports.BlendMode={}));var ge=class{static{h(this,"GaussianValuesHelper");}static ƀds(t,e){let i=e*e,r=1/(helpersLib.PI_360*i),s=-(t*t)/(2*i);return r*Math.exp(s)}static getValuesForLinearSamplingPascal(t){let e=t*2,i=Math.pow(2,e),r=.005*i,s=helpersLib.NumberHelper.pascalTriangleRow(e).slice(t).filter(l=>{if(l<r)i-=l*2;else return true}),n=1/i,a=s.map(l=>l*n);return this.ƀbu(a)}static getValuesForLinearSamplingGauss(t){if(t===0)return [{offset:0,multiplier:1}];if(t===1)return [{offset:0,multiplier:.5},{offset:1,multiplier:.25}];{let e=helpersLib.ArrayHelper.createIntegerArray(Math.ceil(t*.75)).map(r=>this.ƀds(r,t*.4)),i=e.reduce((r,s)=>r+s,0);return i=i*2-e[0],e=e.map(r=>r/i),this.ƀbu(e)}}static ƀbu(t){let e=[{offset:0,multiplier:t[0]}];for(let i=1;i<t.length-1;i+=2){let r=t[i]+t[i+1],s=i+t[i+1]/r;e.push({offset:s,multiplier:r});}if(t.length%2===0){let i=t[t.length-1],r=t.length-1;e.push({offset:r,multiplier:i});}return e}};var Fi=class ei extends N__namespace.Filter{static{h(this,"BlurFilterPass");}static ƀev(){return `
2
- attribute vec2 aVertexPosition;
3
- attribute vec2 aTextureCoord;
1
+ 'use strict';var actionsLib=require('actions-lib');require('reflect-metadata');var helpersLib=require('helpers-lib'),F=require('pixi.js');require('pixi.js/advanced-blend-modes');var scriptEngineLib=require('script-engine-lib'),W=require('p2');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var F__namespace=/*#__PURE__*/_interopNamespace(F);var W__default=/*#__PURE__*/_interopDefault(W);var gr=Object.defineProperty;var h=(o,t)=>gr(o,"name",{value:t,configurable:true});function q(){return class{static{h(this,"GatewayBase");}}}h(q,"Gateway");function Mi(o,t){let e=o.prototype,i=Object.getPrototypeOf(t);for(let r of Reflect.ownKeys(i)){if(typeof r!="string"||r==="constructor")continue;let s=t[r];if(typeof s=="function"){if(Object.prototype.hasOwnProperty.call(e,r))throw new Error(`Gateway "${o.name}": method "${r}" is already registered by another controller.`);e[r]=s.bind(t);}}}h(Mi,"bindControllerToGateway");var E=class{static{h(this,"BardLegendsHardReset");}static{this.ƀff=new actionsLib.Action;}static{this.onHardReset=this.ƀff.notifier;}static hardReset(){actionsLib.ActionLib.hardReset(),this.ƀff.trigger();}};function u(){return function(o){P.ƀha.set(o,{paramtypes:P.ƀeo(o)});}}h(u,"ServiceDecorator");var P=class o{static{h(this,"Service");}static{this.ƀha=new WeakMap;}static{this.ƀjs=new Map;}static get(t){let e=this.ƀjs.get(t);if(!e){let i=o.ƀha.get(t);if(!i)throw new Error(`Service: service class is not decorated by @ServiceDecorator(), class: "${t.name}"`);let r=this.ƀjh(i.paramtypes);e=new t(...r),this.ƀjs.set(t,e);}return e}static ƀeo(t){let e=Reflect.getMetadata("design:paramtypes",t)||[];return e.some(i=>!i)&&console.error(`Circular dependency: ${t.name}`),e.some(i=>i.name==="Object")&&console.error(`Some injected parameters are failed to resolve. Check if it is imported as value, if not remove the "type" keyword. Class: "${t.name}"`),e}static ƀjh(t){return t.map(i=>{if(i&&o.ƀha.has(i))return this.get(i);throw new Error(`Injected parameter has to be decorated with @ServiceDecorator(), class: "${i.name}"`)})}};E.onHardReset.subscribe(()=>{P.ƀha=new WeakMap,P.ƀjs=new Map;}).attachToRoot();function tt(o){return function(t){let e=P.ƀeo(t);if(e.some(i=>!i))console.error(`Circular dependency: ${t.name}`);else {let i=P.ƀjh(e);i.some(s=>s===void 0)&&console.error(i,e,t.name);let r=new t(...i);Mi(o,r);}}}h(tt,"ControllerDecorator");var m=class o{static{h(this,"UpdateCycle");}static{this.ƀad=new actionsLib.Action;}static{this.beforeSceneUpdateAction=this.ƀad.notifier;}static{this.ƀjl=new actionsLib.Action;}static{this.sceneUpdateAction=this.ƀjl.notifier;}static{this.ƀf=new actionsLib.Action;}static{this.afterSceneUpdateAction=this.ƀf.notifier;}static{this.ƀlj=0;}static{this.ƀlr=void 0;}static wait(t){let e=this.ƀlj+t;return actionsLib.SingleEvent.create(i=>{let r=o.beforeSceneUpdateAction.subscribe(s=>{s.time>=e&&i();}).attachToRoot();return ()=>r.destroy()})}static registerUpdateModifier(t){if(!this.ƀlr)this.ƀlr=t;else throw new Error("UpdateCycle: There can only one update modifier!")}static cleanUpdateModifier(){this.ƀlr=void 0;}static triggerUpdateTick(t){this.ƀlr&&(t=this.ƀlr(this.ƀlj,t)),this.ƀlj+=t,this.ƀgg=t,t>0&&(o.ƀad.trigger({time:this.ƀlj,delta:t}),o.ƀjl.trigger({time:this.ƀlj,delta:t}),o.ƀf.trigger({time:this.ƀlj,delta:t}));}static get lastDelta(){return this.ƀgg}static{this.ƀgg=0;}};E.onHardReset.subscribe(()=>{m.ƀad.clear(),m.ƀjl.clear(),m.ƀf.clear(),m.ƀlr=void 0,m.ƀlj=0;}).attachToRoot();var O=class o{static{h(this,"EntityStoreHelper");}static{this.ƀay=new Map;}static registerEntityClass(t){this.ƀay.set(t.id,new Map);}static registerEntity(t){let e=this.ƀay.get(t.classID);if(!e)throw new Error(`EntityStoreHelper: No entity class is found. Be sure that entity is decorated with EntityDecorator! Name: "${t.constructor.name}"`);e.set(t.id,t);}static unregisterEntity(t,e){let i=t.id;this.ƀay.get(i)?.delete(e);}static getEntity(t,e){return this.ƀay.get(t.id)?.get(e)}static getSingleton(t){let e=o.getEntities(t);if(e.length>1)throw new Error(`EntityStoreHelper: selectSingleton is called with an entity that has multiple instances! Name: "${this.name}"`);return e[0]}static getSingletonOrFail(t){let e=this.getSingleton(t);if(!e)throw new Error(`EntityStoreHelper: selectSingleton is called with an entity that has no instance! Name: "${this.name}"`);return e}static getEntities(t){let e=this.ƀay.get(t.id);return Array.from(e.values())}};E.onHardReset.subscribe(()=>{O.ƀay.clear();}).attachToRoot();function ti(o){return function(t){U.ƀha.set(t,{paramtypes:P.ƀeo(t),viewInstances:new Map,entity:o.entity}),st.registerView(t,o.entity);}}h(ti,"ViewDecorator");var U=class o extends actionsLib.IDAttachable{static{h(this,"View");}static{this.ƀha=new WeakMap;}static getInstance(t){let e=o.ƀha.get(this);if(!(!e||!e.entity.validateID(t)))return e.viewInstances.get(t)}static getInstanceOrFail(t){let e=o.ƀha.get(this);if(!e||!e.entity.validateID(t))throw new Error(`View: getInstance is called with entity id: "${t}", that is not belonging to the class: "${e?.entity}"`);let i=e.viewInstances.get(t);if(!i)throw new Error(`View: getInstanceOrFail is called with entity id: "${t}", that is not found!`);return i}constructor(){super(),this.update=()=>{},this.attachToRoot(),this.ƀde=st.entityID,this.ƀeu().set(this.ƀde,this);}destroy(){this.destroyed||(super.destroy(),this.ƀeu().delete(this.ƀde));}ƀeu(){let t=o.ƀha.get(this.constructor);if(!t)throw new Error(`View: view class is not decorated by @ViewDecorator(), class: "${this.constructor.name}"`);return t.viewInstances}};E.onHardReset.subscribe(()=>{U.ƀha=new WeakMap;}).attachToRoot();var st=class o{static{h(this,"EntityViewsHelper");}static{this.ƀmb=new Map;}static registerView(t,e){o.ƀmb.has(e)||o.ƀmb.set(e,[]);let i=o.ƀmb.get(e);i&&i.push(t),O.getEntities(e).forEach(s=>{this.ƀck(s,t);});}static ƀck(t,e){try{let i=U.ƀha.get(e);if(!i)throw new Error(`View: view class is not decorated by @ViewDecorator(), class: "${e.name}"`);let r=P.ƀjh(i.paramtypes.slice(1));o.entityID=t.id;let s=new e(t,...r);t.destroyed?s.destroy():t.ƀma.ƀmc.push(s);}catch(i){console.error(i);}}constructor(t){this.ƀdd=t,this.ƀmc=[];}createViews(){if(!this.ƀdd.destroyed){let t=o.ƀmb.get(this.ƀdd.constructor);t&&t.forEach(e=>{o.ƀck(this.ƀdd,e);});}}updateViews(t,e){for(let i=0;i<this.ƀmc.length;i++){let r=this.ƀmc[i];r.destroyed||r.update(t,e);}}destroyViews(){this.ƀmc.forEach(t=>{t.destroy();});}};E.onHardReset.subscribe(()=>{st.ƀmb=new Map;}).attachToRoot();function gt(){return function(o){O.registerEntityClass(o);}}h(gt,"EntityDecorator");var $=class extends actionsLib.IDAttachable{static{h(this,"Entity");}static getInstanceByID(t){if(t)return O.getEntity(this,t)}static getInstanceByIDOrFail(t){let e=O.getEntity(this,t);if(!e)throw new Error(`Entity: entity is not found! Name: "${this.name}", id: "${t}"`);return e}static getEntities(){return O.getEntities(this)}constructor(){super(),this.ƀma=new st(this),O.registerEntity(this),m.sceneUpdateAction.subscribe(t=>{this.destroyed||(this.ƀlp(t.time,t.delta),this.ƀma.updateViews(t.time,t.delta));}).attach(this);}destroy(){this.destroyed||(this.ƀma.destroyViews(),O.unregisterEntity(this.constructor,this.id),super.destroy());}attach(t){return super.attach(t),this.ƀma.createViews(),this}attachByID(t){return super.attachByID(t),this.ƀma.createViews(),this}attachToRoot(){return super.attachToRoot(),this.ƀma.createViews(),this}ƀlp(t,e){}};var wt=class o extends ${static{h(this,"SingletonEntity");}static{this.ƀcl=new WeakMap;}static ƀea(t){let e=o.ƀcl.get(t);return e||(e=new actionsLib.SingleAction,o.ƀcl.set(t,e)),e}static ƀlo(t){o.ƀcl.delete(t);}static getInstanceAsync(){let t=O.getSingleton(this);return t&&!t.destroyed?actionsLib.SingleEvent.instant(t):o.ƀea(this).toSingleEvent()}static continuesSubscription(){let t=h((e,i)=>{this.getInstanceAsync().tap(s=>{e({type:"open",value:s}),s.onDestroy().tap(()=>{e({type:"close",value:s}),t(e,i);}).attach(i);}).attach(i);},"subscribe");return actionsLib.Sequence.create((e,i)=>t(e,i.attachable))}static getInstance(){return O.getSingleton(this)}static getInstanceOrFail(){return O.getSingletonOrFail(this)}constructor(){if(super(),this.constructor.getEntities().length>1)throw this.attachToRoot(),new Error(`SingletonEntity: entity is decorated as singleton but multiple instances are created! "${this}"`);this.onDestroy().tap(()=>o.ƀlo(this.constructor)).attachToRoot(),o.ƀea(this.constructor).resolve(this);}};function Ar(){return function(o){return Ot.ƀha.set(o,{paramtypes:P.ƀeo(o)}),o}}h(Ar,"SceneDecorator");var Ot=class o extends actionsLib.IDAttachable{static{h(this,"Scene");}static{this.ƀha=new WeakMap;}static{this.ƀfz=new actionsLib.Variable(false);}static{this.isTransitioning=this.ƀfz.notifier;}static{this.ƀb=new actionsLib.Variable(void 0);}static{this.activeScene=this.ƀb.notifier;}static getActiveSceneOrFail(){if(!o.ƀb.value)throw new Error("Scene: getActiveSceneOrFail is called when there is no active scene!");return o.ƀb.value}static cancelActiveScene(){return o.ƀb.value?o.ƀb.value.ƀj("cancel"):actionsLib.SingleEvent.instant()}static isActive(){return o.ƀb.value instanceof this}static getInstance(){return o.ƀb.value instanceof this?o.ƀb.value:void 0}static getInstanceOrFail(){if(!o.ƀb.value)throw new Error("Scene: getInstance is called when there is no active scene!");if(!(o.ƀb.value instanceof this))throw new Error(`Scene: getInstance is called while "${this.name}" was not the active scene. Current scene is: "${o.ƀb.value}"!`);return o.ƀb.value}static open(...t){if(o.ƀfz.value)throw new Error("Scene: you cannot open a scene while a scene is transitioning!");if(o.ƀb.value)throw new Error("Scene: you cannot open a scene while there is already another active scene!");let e=o.ƀha.get(this);if(!e)throw new Error(`Scene: scene class is not decorated by @SceneDecorator(), class: "${this.name}"`);let i=t[0];o.ƀfz.value=true;let r=P.ƀjh(e.paramtypes),s=new this(...r).attachToRoot();return o.ƀb.set(s),s.init(i).map(()=>(o.ƀfz.value=false,s)).chainToRoot()}constructor(){super(),this.ƀhl=new actionsLib.SingleAction,this.onClose=this.ƀhl.notifier,m.sceneUpdateAction.subscribe(t=>this.update(t.time,t.delta)).attach(this);}close(...t){if(o.ƀb.value!==this)throw new Error("Internal Error: Scene instance is accessed while it is not the active scene!");if(o.ƀfz.value)throw new Error("Scene: you cannot close a scene while a scene is transitioning!");o.ƀfz.value=true;let e=t[0];return this.ƀj(e).map(()=>(this.ƀhl.resolve(e),e)).chainToRoot()}ƀj(t){return this.prepareToClose(t).tap(()=>{super.destroy(),o.ƀb.set(void 0),o.ƀfz.value=false;}).chainToRoot()}destroy(){throw new Error('To close a scene use the "close()" function')}};E.onHardReset.subscribe(()=>{Ot.ƀha=new WeakMap,Ot.ƀb.set(void 0);}).attachToRoot();var V=class{static{h(this,"AnimationInterpolationFunctions");}static boomerangTime(t){return 1-Math.abs(t-.5)*2}static lineer(t){return t}static easeIn(t){return Math.pow(t,2)}static easeOut(t){return 1-Math.pow(1-t,2)}static easeInCubic(t){return Math.pow(t,3)}static easeOutCubic(t){return 1-Math.pow(1-t,3)}static easeInOut(t){return t<.5?2*t*t:(t-=1,1-2*t*t)}static easeInOutCubic(t){let e=2*t-2;return t<.5?4*Math.pow(t,3):(t-1)*Math.pow(e,2)+1}static blink(t){return t>.5?1:0}},Or=class{static{h(this,"AnimationLineer");}start(){}multiplierFunction(t){return V.lineer(t)}},Mr=class{static{h(this,"AnimationEaseIn");}start(){}multiplierFunction(t){return V.easeIn(t)}},Dr=class{static{h(this,"AnimationEaseOut");}start(){}multiplierFunction(t){return V.easeOut(t)}},Br=class{static{h(this,"AnimationEaseInOut");}start(){}multiplierFunction(t){return V.easeInOut(t)}},Gr=class{static{h(this,"AnimationEaseInCubic");}start(){}multiplierFunction(t){return V.easeInCubic(t)}},_r=class{static{h(this,"AnimationEaseOutCubic");}start(){}multiplierFunction(t){return V.easeOutCubic(t)}},Vr=class{static{h(this,"AnimationEaseInOutCubic");}start(){}multiplierFunction(t){return V.easeInOutCubic(t)}},Fr=class{static{h(this,"AnimationBlink");}start(){}multiplierFunction(t){return V.blink(t)}},Bi=class{static{h(this,"AnimationFlicker");}start(){this.ƀlk=new Array(10).fill(0),helpersLib.Random.integerBetween(0,9),this.ƀlk[helpersLib.Random.integerBetween(0,9)]=Math.random(),Math.random()<.3&&(helpersLib.Random.integerBetween(0,9),this.ƀlk[helpersLib.Random.integerBetween(0,9)]=Math.random()),Math.random()<.2&&(helpersLib.Random.integerBetween(0,9),this.ƀlk[helpersLib.Random.integerBetween(0,9)]=Math.random());}multiplierFunction(t){let e=Math.floor(t*10);return this.ƀlk[e]}},x=class{static{h(this,"Animations");}static{this.lineer=new Or;}static{this.easeIn=new Mr;}static{this.easeOut=new Dr;}static{this.easeInOut=new Br;}static{this.easeInCubic=new Gr;}static{this.easeOutCubic=new _r;}static{this.easeInOutCubic=new Vr;}static{this.blink=new Fr;}};exports.ReAnimateHandlingType=void 0;(function(o){o[o.ThrowError=1]="ThrowError",o[o.IgnoreNewAnimation=2]="IgnoreNewAnimation",o[o.CompletePrevious=3]="CompletePrevious";})(exports.ReAnimateHandlingType||(exports.ReAnimateHandlingType={}));exports.AnimationsCompletionHandlingType=void 0;(function(o){o[o.ReturnToOriginal=1]="ReturnToOriginal",o[o.StayInCurrentState=2]="StayInCurrentState",o[o.JumpToEnd=3]="JumpToEnd",o[o.Loop=4]="Loop";})(exports.AnimationsCompletionHandlingType||(exports.AnimationsCompletionHandlingType={}));var I=class o{static{h(this,"Animator");}static{this.ƀl=new WeakMap;}static ƀdt(t){let e=o.ƀl.get(t);return e||(e=new helpersLib.MapToWeakRefs,o.ƀl.set(t,e)),e}get animating(){return this.ƀhu!==void 0}get target(){return this.ƀla}get value(){return this.ƀlu||(this.ƀlu=new actionsLib.Variable(this.ƀla)),this.ƀlu.notifier}get paused(){return this.ƀic!==void 0}set paused(t){this.ƀic=t?true:void 0;}constructor(t,e,i){this.ƀga=false,this.ƀkf=false,this.ƀla=t,this.ƀhw={duration:200,animation:x.lineer,reAnimateHandling:exports.ReAnimateHandlingType.ThrowError,completionHandling:exports.AnimationsCompletionHandlingType.StayInCurrentState,...i},this.ƀm=helpersLib.Comparator.isArray(e)?e:[e],this.ƀgn(t,this.ƀm);}animate(t,e){let i={...this.ƀhw,...e},r=this.ƀhu;if(this.ƀhu)switch(i.reAnimateHandling){case exports.ReAnimateHandlingType.ThrowError:throw new Error("Animator: new animation triggered while another is not complete yet.");case exports.ReAnimateHandlingType.IgnoreNewAnimation:return actionsLib.SingleEvent.instant().notIdle();case exports.ReAnimateHandlingType.CompletePrevious:this.ƀju(i.completionHandling,this.ƀhu.ƀix,true);break;default:{throw new Error}}return actionsLib.SingleEvent.create(n=>{this.ƀga&&(this.ƀkf=true);let a={};for(let c of this.ƀm)a[c]={ƀku:this.ƀla[c],ƀld:t[c]};let l={ƀcy:i.duration,ƀcz:0,ƀix:a,ƀbj:i.completionHandling,ƀn:i.animation,ƀbi:n};if(l.ƀbj!==exports.AnimationsCompletionHandlingType.Loop&&this.ƀfw(l)){this.ƀhu=void 0,n(),r?.ƀbi(),this.ƀaz();return}return l.ƀn.start(),this.ƀhu=l,this.ƀdc(),r?.ƀbi(),()=>{this.ƀhu===l&&(this.ƀla instanceof actionsLib.Attachable&&this.ƀla.destroyed||this.ƀju(l.ƀbj,l.ƀix,true),this.ƀhu=void 0,this.ƀaz());}}).notIdle()}set(t){this.ƀmh(e=>t[e]),this.ƀhu?.ƀbi();}completeAnimation(t){if(this.ƀhu){t=t??this.ƀhu.ƀbj,this.ƀju(t,this.ƀhu.ƀix,true);let e=this.ƀhu.ƀbi;this.ƀhu=void 0,e();}}ƀdc(){this.ƀlq||(this.ƀlq=m.beforeSceneUpdateAction.subscribe(t=>{if(!this.ƀic){this.ƀga=true;try{let e=this.ƀhu;if(!e)return;if(e.ƀcz+=t.delta,e.ƀcz>=e.ƀcy)if(e.ƀbj===exports.AnimationsCompletionHandlingType.Loop)e.ƀcz%=e.ƀcy,e.ƀn.start();else {this.ƀju(e.ƀbj,e.ƀix,!1),this.ƀhu=void 0,e.ƀbi(),this.ƀaz();return}let i=e.ƀn.multiplierFunction(e.ƀcz/e.ƀcy);this.ƀmh(r=>{let s=e.ƀix[r];return (s.ƀld-s.ƀku)*i+s.ƀku});}finally{this.ƀga=false,this.ƀkf&&(this.ƀkf=false,this.ƀcr(),this.ƀdc());}}}).attachToRoot());}ƀfw(t){return this.ƀm.every(e=>this.ƀla[e]===t.ƀix[e].ƀld)}ƀju(t,e,i){switch(t){case exports.AnimationsCompletionHandlingType.ReturnToOriginal:case exports.AnimationsCompletionHandlingType.Loop:this.ƀmh(r=>e[r].ƀku);break;case exports.AnimationsCompletionHandlingType.JumpToEnd:this.ƀmh(r=>e[r].ƀld);break;case exports.AnimationsCompletionHandlingType.StayInCurrentState:i||this.ƀmh(r=>e[r].ƀld);break;default:{throw new Error}}}ƀmh(t){let e=false;for(let i of this.ƀm){let r=t(i);this.ƀla[i]!==r&&(e=true,this.ƀla[i]=r);}e&&this.ƀlu?.set(this.ƀla);}ƀaz(){this.ƀhu||this.ƀcr();}ƀcr(){this.ƀlq?.destroy(),this.ƀlq=void 0;}ƀgn(t,e){let i=o.ƀdt(t);for(let r of e){if(i.has(r))throw new Error(`Animator: target property is already animated! Target: "${JSON.stringify(t,void 0,2)}", Property: "${r}"`);i.set(r,this);}}};exports.ContainerEventType=void 0;(function(o){o.Click="click",o.MouseOver="mouseover",o.MouseOut="mouseout",o.PointerDown="pointerdown",o.PointerUp="pointerup",o.PointerUpOutside="pointerupoutside",o.PointerMove="pointermove",o.PointerCancel="pointercancel",o.PointerOver="pointerover",o.PointerOut="pointerout",o.PointerEnter="pointerenter",o.PointerLeave="pointerleave",o.Added="added",o.Removed="removed",o.Update="update",o.Change="change",o.Wheel="wheel";})(exports.ContainerEventType||(exports.ContainerEventType={}));exports.Cursor=void 0;(function(o){o.Default="default",o.Pointer="pointer";})(exports.Cursor||(exports.Cursor={}));var ge=class extends actionsLib.IDAttachable{static{h(this,"ContainerAttributes");}constructor(){super(),this.ƀhb=false,this.ƀdl=false,this.ƀjj=1,this.ƀw=1,this.ƀip=new F__namespace.Container;}get size(){return this.getSize()}set size(t){this.setSize(t);}getSize(){return new helpersLib.Vector(this.ƀip.width,this.ƀip.height)}setSize(t){return this.ƀip.width=t.x,this.ƀip.height=t.y,this}setPosition(t,e){if(e?.holdFrom){let i=this.ƀip.getLocalBounds(),r=new helpersLib.Vector(this.ƀip.scale.x,this.ƀip.scale.y),s=new helpersLib.Vector(i.x,i.y).multiply(r),n=new helpersLib.Vector(i.width,i.height).multiply(r),a=s.add(n.multiply(e.holdFrom));t=t.subtract(a);}return e?.round!==false&&(t=t.round({rollHalfsDown:true})),this.position=t,this}get position(){return new helpersLib.Vector(this.ƀip.x,this.ƀip.y)}set position(t){this.ƀip.position=t;}get x(){return this.ƀip.x}set x(t){this.ƀip.x=t;}get y(){return this.ƀip.y}set y(t){this.ƀip.y=t;}on(t){return actionsLib.Sequence.create(e=>{let i=h(r=>{if(t===exports.ContainerEventType.Wheel){let n=r.deltaY;e({deltaY:n});}else e(void 0);},"handle");return this.ƀip.on(t,i),()=>this.ƀip.off(t,i)}).notIdle()}setRotation(t){return this.rotation=t,this}get rotation(){return new helpersLib.Radian(this.ƀip.rotation)}set rotation(t){this.ƀip.rotation=t.value;}get rotationValue(){return this.rotation.value}set rotationValue(t){this.rotation=new helpersLib.Radian(t);}setZIndex(t){return this.zIndex=t,this}get zIndex(){return this.ƀip.zIndex}set zIndex(t){this.ƀip.zIndex=t;}setSkewX(t){return this.skewX=t,this}get skewX(){return new helpersLib.Radian(this.ƀip.skew.x)}set skewX(t){this.ƀip.skew.x=t.value;}setSkewY(t){return this.skewY=t,this}get skewY(){return new helpersLib.Radian(this.ƀip.skew.y)}set skewY(t){this.ƀip.skew.y=t.value;}setSortableChildren(t){return this.sortableChildren=t,this}get sortableChildren(){return this.ƀip.sortableChildren}set sortableChildren(t){this.ƀip.sortableChildren=t;}setAlpha(t){return this.ƀip.alpha=t,this}get alpha(){return this.ƀip.alpha}set alpha(t){this.ƀip.alpha=t;}setInteractive(t){return this.interactive=t,this}get interactive(){return this.ƀip.eventMode==="dynamic"}set interactive(t){t?this.ƀip.eventMode="dynamic":this.ƀip.eventMode="none";}setRenderGroup(t=true){return this.ƀip.isRenderGroup=t,this}setCursor(t){return this.cursor=t,this}get cursor(){return this.ƀip.cursor}set cursor(t){this.ƀip.cursor=t;}getMask(){throw new Error("ContainerAttributes: mask is not available!")}setMask(t){return t?(this.ƀip.addChild(t.ƀip),this.ƀip.mask=t.getMask(),this.ƀgq=t):(this.ƀgq&&this.ƀip.removeChild(this.ƀgq.ƀip),this.ƀip.mask=null),this}hitTest(t){if(this.ƀip.parent)if(this.ƀip.hitArea){let e=this.ƀip.toLocal(t);return this.ƀip.hitArea.contains(e.x,e.y)}else return this.ƀip.getBounds().containsPoint(t.x,t.y);else return false}get boundingBox(){let t=this.ƀip.getLocalBounds();return new helpersLib.Rectangle(new helpersLib.Vector(t.x,t.y),new helpersLib.Vector(t.x+t.width,t.y+t.height))}ignoreBounds(t=true){return this.ƀip.measurable=!t,this}setMirror(t=false){return this.mirror=t,this}get mirror(){return this.ƀhb}set mirror(t){this.ƀhb=t,this.ƀls();}setFlip(t=false){return this.flip=t,this}get flip(){return this.ƀdl}set flip(t){this.ƀdl=t,this.ƀls();}setScale(t){return this.scale=t,this}get scale(){return this.ƀjj}set scale(t){this.ƀjj=t,this.ƀls();}setAspectRatio(t){return this.aspectRatio=t,this}get aspectRatio(){return this.ƀw}set aspectRatio(t){this.ƀw=t,this.ƀls();}ƀls(){this.ƀip.scale.set(this.ƀjj,this.ƀjj),this.ƀw<1?this.ƀip.scale.x*=this.ƀw:this.ƀw>1&&(this.ƀip.scale.y/=this.ƀw),this.ƀhb&&(this.ƀip.scale.x*=-1),this.ƀdl&&(this.ƀip.scale.y*=-1);}};var N=2;exports.BlendMode=void 0;(function(o){o.Normal="normal",o.Add="add",o.Screen="screen",o.Luminosity="luminosity",o.ColorDodge="color-dodge";})(exports.BlendMode||(exports.BlendMode={}));var we=class{static{h(this,"GaussianValuesHelper");}static ƀdr(t,e){let i=e*e,r=1/(helpersLib.PI_360*i),s=-(t*t)/(2*i);return r*Math.exp(s)}static getValuesForLinearSamplingPascal(t){let e=t*2,i=Math.pow(2,e),r=.005*i,s=helpersLib.NumberHelper.pascalTriangleRow(e).slice(t).filter(l=>{if(l<r)i-=l*2;else return true}),n=1/i,a=s.map(l=>l*n);return this.ƀbu(a)}static getValuesForLinearSamplingGauss(t){if(t===0)return [{offset:0,multiplier:1}];if(t===1)return [{offset:0,multiplier:.5},{offset:1,multiplier:.25}];{let e=helpersLib.ArrayHelper.createIntegerArray(Math.ceil(t*.75)).map(r=>this.ƀdr(r,t*.4)),i=e.reduce((r,s)=>r+s,0);return i=i*2-e[0],e=e.map(r=>r/i),this.ƀbu(e)}}static ƀbu(t){let e=[{offset:0,multiplier:t[0]}];for(let i=1;i<t.length-1;i+=2){let r=t[i]+t[i+1],s=i+t[i+1]/r;e.push({offset:s,multiplier:r});}if(t.length%2===0){let i=t[t.length-1],r=t.length-1;e.push({offset:r,multiplier:i});}return e}};var Vi=class Fi extends F__namespace.Filter{static{h(this,"BlurFilterPass");}static ƀec(t,e){let i=e?"uInputPixel.z":"uInputPixel.w",r=`
2
+ in vec2 vTextureCoord;
3
+ out vec4 finalColor;
4
4
 
5
- uniform mat3 projectionMatrix;
5
+ uniform sampler2D uTexture;
6
+ uniform vec4 uInputPixel;
6
7
 
7
- varying vec2 vTextureCoord;
8
-
9
- void main(void) {
10
- gl_Position = vec4((projectionMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);
11
- vTextureCoord = aTextureCoord;
12
- }
13
- `}static ƀed(t,e){let i=`
14
- uniform sampler2D uSampler;
15
-
16
- varying vec2 vTextureCoord;
17
- uniform float pixelSize;
18
-
19
- void iterate(vec2 offsetVector, float multiplier, out vec4 outputColor) {
20
- vec4 textureColor = texture2D(uSampler, (vTextureCoord + offsetVector));
8
+ void iterate(vec2 offsetVector, float multiplier, inout vec4 outputColor) {
9
+ vec4 textureColor = texture(uTexture, (vTextureCoord + offsetVector));
21
10
  outputColor += textureColor * multiplier;
22
11
  }
23
12
 
24
13
  void main() {
25
- gl_FragColor = texture2D(uSampler, vTextureCoord) * ${helpersLib.NumberHelper.toFloatString(t[0].multiplier)};
26
- float offset;`;for(let r=1;r<t.length;r++){let s=`vec2(${e?"offset, 0.0":"0.0, offset"})`;i+=`
14
+ finalColor = texture(uTexture, vTextureCoord) * ${helpersLib.NumberHelper.toFloatString(t[0].multiplier)};
15
+ float offset;`;for(let s=1;s<t.length;s++){let n=`vec2(${e?"offset, 0.0":"0.0, offset"})`;r+=`
27
16
 
28
- offset = ${helpersLib.NumberHelper.toFloatString(t[r].offset)} * pixelSize;
29
- iterate(${s}, ${helpersLib.NumberHelper.toFloatString(t[r].multiplier)}, gl_FragColor);
30
- iterate(${s} * -1.0, ${helpersLib.NumberHelper.toFloatString(t[r].multiplier)}, gl_FragColor);`;}return i+=`
31
- }
32
- `,i}constructor(t,e){super(ei.ƀev(),ei.ƀed(ge.getValuesForLinearSamplingGauss(t),e)),this.ƀfl=e,this.resolution=D;}apply(t,e,i,r){this.uniforms.pixelSize=this.ƀfl?1/(e.width*D):1/(e.height*D),t.applyFilter(this,e,i,r);}},Ot=class extends N__namespace.Filter{static{h(this,"BlurFilter");}constructor(t=new helpersLib.Vector(2,2)){if(super(),this.ƀlb=t,this.resolution=D,this.ƀlb=t.multiplyNumber(D).floor(),this.ƀlb.x<0||this.ƀlb.y<0)throw new Error("BlurFilterLinearSampling: Strength * Resolution must be greater than 0");if(this.ƀlb.x>100||this.ƀlb.y>100)throw new Error("BlurFilterLinearSampling: Strength * Resolution cannot be higher than 100");this.ƀfn=new Fi(this.ƀlb.x,true),this.ƀma=new Fi(this.ƀlb.y,false),this.padding=Math.max(this.ƀlb.x,this.ƀlb.y);}apply(t,e,i,r){let s=t.getFilterTexture();this.ƀma.apply(t,e,s,N__namespace.CLEAR_MODES.CLEAR),this.ƀfn.apply(t,s,i,r),t.returnFilterTexture(s);}get blendMode(){return this.ƀfn.blendMode}set blendMode(t){this.ƀfn.blendMode=t,this.ƀma.blendMode=t;}};var xe=class{static{h(this,"Filters");}get red(){return this.ƀjd}set red(t){this.ƀjd=t,this.ƀje();}get green(){return this.ƀez}set green(t){this.ƀez=t,this.ƀje();}get blue(){return this.ƀag}set blue(t){this.ƀag=t,this.ƀje();}get brightness(){return this.ƀal}set brightness(t){this.ƀal=t,this.ƀje();}get contrast(){return this.ƀbp}set contrast(t){this.ƀbp=t,this.ƀje();}get blur(){return this.ƀah}set blur(t){let e=helpersLib.Comparator.isNumber(t)?new helpersLib.Vector(t,t):t;(this.ƀah&&e&&!this.ƀah.isEqual(e)||this.ƀah&&!e||!this.ƀah&&e)&&(this.ƀah=e,this.ƀai&&(this.ƀai.destroy(),this.ƀai=void 0),e&&(this.ƀai=new Ot(e),this.ƀhq()));}constructor(t){this.ƀbl=t,this.ƀjd=1,this.ƀez=1,this.ƀag=1,this.ƀal=1,this.ƀbp=1,this.ƀhq();}removeColorFilter(){this.ƀbe?.destroy(),this.ƀbe=void 0,this.ƀhq();}ƀje(){this.ƀjd===1&&this.ƀez===1&&this.ƀag===1&&this.ƀal===1&&this.ƀbp===1?this.ƀbe&&(this.ƀbe.destroy(),this.ƀbe=void 0,this.ƀhq()):(this.ƀbe||(this.ƀbe=new N__namespace.ColorMatrixFilter,this.ƀbe.resolution=D,this.ƀhq()),this.ƀbe.matrix=[this.ƀjd*this.ƀbp,0,0,0,this.ƀal-1,0,this.ƀez*this.ƀbp,0,0,this.ƀal-1,0,0,this.ƀag*this.ƀbp,0,this.ƀal-1,0,0,0,1,0]);}ƀhq(){let t=[];this.ƀai&&t.push(this.ƀai),this.ƀbe&&t.push(this.ƀbe),this.ƀbl.filters=t;}};var d=class o extends ye{static{h(this,"Container");}static{this.allContainers=new Map;}constructor(){super(),this.addChildTo=this,this.defaultChildOptions={addUnder:false,cropOverflowingParts:false},o.allContainers.set(this.id,this),this.filters=new xe(this.ƀir);}destroy(){this.destroyed||(super.destroy(),o.allContainers.delete(this.id),!this.ƀir.destroyed&&this.ƀir.destroy());}getBoundingMask(){if(this.addChildTo!==this)return this.addChildTo.getBoundingMask();throw new Error(`Container: bounding mask cannot be used without bounding shapes. Display Object: "${this.id}"!`)}displayParent(t,e){let i;if(helpersLib.Comparator.isNumber(t)){if(i=o.allContainers.get(t),!i)throw new Error(`Container: parent not found! id: ${t}`)}else i=t;let r={addUnder:i.defaultChildOptions.addUnder,cropOverflowingParts:i.defaultChildOptions.cropOverflowingParts,...e};if(r.addUnder?i.addChildTo.ƀir.addChildAt(this.ƀir,0):i.addChildTo.ƀir.addChild(this.ƀir),r.cropOverflowingParts)if(i)this.ƀir.mask=i.getBoundingMask().pixiSprite;else throw new Error("Container: cropOverflowingParts can only be used with Container parent!");return this}};var Dt=class extends actionsLib.Attachable{static{h(this,"StateAnimation");}onStateChange(t){return this.ƀhs.subscribe(e=>t(e.item,e.nextItem)).attach(this),this}onValueChange(t){return this.ƀhu.subscribe(e=>t(e)).attach(this),this}get state(){return {value:this.ƀk.value,item:this.ƀge,nextItem:this.ƀhk,queuedItem:this.ƀja,animationState:this.ƀo}}get paused(){return this.ƀp.paused}set paused(t){this.ƀp.paused=t;}constructor(t){super(),this.ƀk={value:0},this.ƀo="idle",this.ƀhs=new actionsLib.Action,this.ƀhu=new actionsLib.Action,this.ƀhx={duration:500,animation:x.lineer,...t},this.ƀp=new I(this.ƀk,"value",{duration:this.ƀhx.duration,animation:this.ƀhx.animation,reAnimateHandling:exports.ReAnimateHandlingType.CompletePrevious,completionHandling:exports.AnimationsCompletionHandlingType.StayInCurrentState}),this.ƀp.value.subscribe(()=>{this.ƀk.value!==1&&this.ƀk.value!==0&&this.ƀhu.trigger(this.ƀk.value);}).attach(this);}setItem(t,e){if(this.ƀge===void 0)this.ƀge=t,this.ƀhs.trigger({item:this.ƀge,nextItem:this.ƀhk}),this.ƀhu.trigger(this.ƀk.value);else if(e?.instant)this.ƀp.completeAnimation(),this.ƀo="idle",this.ƀge=t,this.ƀhk=void 0,this.ƀja=void 0,this.ƀk.value=0,this.ƀhs.trigger({item:this.ƀge,nextItem:this.ƀhk}),this.ƀhu.trigger(this.ƀk.value);else switch(this.ƀo){case "idle":t!==this.ƀge&&(this.ƀo="transitioning",this.ƀhk=t,this.ƀk.value=0,this.ƀhs.trigger({item:this.ƀge,nextItem:this.ƀhk}),this.ƀhu.trigger(this.ƀk.value),this.ƀp.animate({value:1}).tap(()=>this.ƀho()).attach(this));break;case "transitioning":t===this.ƀge?(this.ƀja=void 0,this.ƀo="reverting",this.ƀp.animate({value:0},{duration:this.ƀk.value*this.ƀhx.duration}).tap(()=>this.ƀho()).attach(this)):t===this.ƀhk?this.ƀja=void 0:this.ƀja=t;break;case "reverting":t===this.ƀhk?(this.ƀja=void 0,this.ƀo="transitioning",this.ƀp.animate({value:1},{duration:(1-this.ƀk.value)*this.ƀhx.duration}).tap(()=>this.ƀho()).attach(this)):t===this.ƀge?this.ƀja=void 0:this.ƀja=t;break;default:{this.ƀo;throw new Error}}}ƀho(){switch(this.ƀo){case "transitioning":this.ƀk.value===1&&(this.ƀk.value=0,this.ƀja!==void 0?(this.ƀo="transitioning",this.ƀge=this.ƀhk,this.ƀhk=this.ƀja,this.ƀja=void 0,this.ƀhs.trigger({item:this.ƀge,nextItem:this.ƀhk}),this.ƀp.animate({value:1}).tap(()=>this.ƀho()).attach(this)):(this.ƀo="idle",this.ƀge=this.ƀhk,this.ƀhk=void 0,this.ƀhs.trigger({item:this.ƀge,nextItem:this.ƀhk})),this.ƀhu.trigger(this.ƀk.value));break;case "reverting":if(this.ƀge===void 0)throw new Error("StateAnimation: item must be defined when reverting!");this.ƀk.value===0&&(this.ƀja!==void 0?(this.ƀo="transitioning",this.ƀhk=this.ƀja,this.ƀja=void 0,this.ƀk.value=0,this.ƀhs.trigger({item:this.ƀge,nextItem:this.ƀhk}),this.ƀp.animate({value:1}).tap(()=>this.ƀho()).attach(this)):(this.ƀo="idle",this.ƀhk=void 0,this.ƀk.value=0,this.ƀhs.trigger({item:this.ƀge,nextItem:this.ƀhk})),this.ƀhu.trigger(this.ƀk.value));break;case "idle":break;default:{this.ƀo;throw new Error}}}};var H=Symbol("empty"),ve=class extends actionsLib.Attachable{static{h(this,"ThroughEmptyStateAnimation");}onStateChange(t){return this.ƀhs.subscribe(e=>t(e)).attach(this),this}onValueChange(t){return this.ƀhu.subscribe(e=>t(e)).attach(this),this}get state(){let t=this.ƀky.state.queuedItem;return {value:this.ƀlw,item:this.ƀge,nextItem:this.ƀo==="appearing"?this.ƀge:void 0,queuedItem:t===H?void 0:t,animationState:this.ƀo}}constructor(t){super(),this.ƀlw=0,this.ƀo="hidden",this.ƀhs=new actionsLib.Action,this.ƀhu=new actionsLib.Action,this.ƀky=new Dt(t).onStateChange((e,i)=>this.ƀfb(e,i)).onValueChange(e=>this.ƀfg(e)).attach(this),this.ƀky.setItem(H);}setItem(t,e){if(e?.instant){this.ƀo=t!==void 0?"appearing":"disappearing",this.ƀky.setItem(t??H,{instant:true});return}switch(this.ƀo){case "hidden":t!==void 0&&(this.ƀo="appearing",this.ƀky.setItem(t));break;case "visible":t===void 0?(this.ƀo="disappearing",this.ƀky.setItem(H)):t!==this.ƀge&&(this.ƀo="disappearToChange",this.ƀky.setItem(H),this.ƀky.setItem(t));break;case "appearing":t===void 0?(this.ƀo="disappearing",this.ƀky.setItem(H)):t!==this.ƀge&&(this.ƀlw>0?(this.ƀo="disappearToChange",this.ƀky.setItem(H),this.ƀky.setItem(t)):(this.ƀky.setItem(H,{instant:true}),this.ƀky.setItem(t)));break;case "disappearing":t!==void 0&&t===this.ƀge?(this.ƀo="appearing",this.ƀky.setItem(t)):t!==void 0&&(this.ƀo="disappearToChange",this.ƀky.setItem(t));break;case "disappearToChange":t===void 0?(this.ƀo="disappearing",this.ƀky.setItem(H)):t===this.ƀge?(this.ƀo="appearing",this.ƀky.setItem(t)):this.ƀky.setItem(t);break;default:{this.ƀo;throw new Error}}}ƀfb(t,e){if(e!==void 0){e!==H&&e!==this.ƀge&&(this.ƀge=e,this.ƀo="appearing",this.ƀhs.trigger(this.ƀge),this.ƀlw!==0&&(this.ƀlw=0,this.ƀhu.trigger(0)));return}if(t===H)this.ƀo==="disappearing"&&(this.ƀge=void 0,this.ƀo="hidden",this.ƀlw=0,this.ƀhs.trigger(void 0),this.ƀhu.trigger(0));else {let i=t!==this.ƀge;this.ƀge=t,this.ƀo="visible",i&&this.ƀhs.trigger(this.ƀge),(i||this.ƀlw!==1)&&(this.ƀlw=1,this.ƀhu.trigger(1));}}ƀfg(t){let e=this.ƀky.state.nextItem;if(e===void 0)return;let i=e===H?1-t:t;i!==this.ƀlw&&(this.ƀlw=i,i!==0&&i!==1&&this.ƀhu.trigger(i));}};var Hi=class extends d{static{h(this,"FadeInContent");}constructor(t,e){super(),this.ƀby=t;let i={duration:200,animation:x.easeInOut,...e};this.alpha=0,this.ƀky=new ve(i).onStateChange(r=>{this.ƀbm?.destroy(),this.ƀbm=void 0,r!==void 0&&(this.ƀbm=new d().displayParent(this).attach(this),this.ƀby({state:r,container:this.ƀbm}));}).onValueChange(r=>{this.alpha=r;}).attach(this);}setState(t,e){return this.ƀky.setItem(t,e),this}};var M=class{static{h(this,"GameAssets");}static{this.ƀjk=new Map;}static{this.ƀq=0;}static getAsset(t){let e=this.ƀjk.get(t);if(e)return e;throw new Error(`Game Assets: Resource not found! Key: "${t}"`)}static insertAsset(t,e){let i=e||`a-${this.ƀq++}`;return this.ƀjk.set(i,t),i}static destroyAsset(t){let e=this.ƀjk.get(t);e&&(e.destroy(true),this.ƀjk.delete(t));}static async loadGameAssets(t){let e=new Map,i=[];t.forEach(s=>{if(!helpersLib.Comparator.isString(s.url))throw new Error(`GameAssets: source url should be a string: ${s.url}`);let n=e.get(s.url),a=s.id;n?n.push(a):(e.set(s.url,[a]),i.push({url:s.url,callback:h(l=>{if(l instanceof N__namespace.Texture&&(l.id=a),n=e.get(s.url),n)n.forEach(c=>{this.ƀjk.set(c,l);});else throw new Error(`GameAssets: unexpected error, nameGroup is not found! "./"! ${s}`)},"callback")}));});let r=performance.now();return Promise.all(i.map(s=>N__namespace.Assets.load(s.url))).then(s=>{let n=performance.now();console.info("Asset load completed in: ",Math.round(n-r)/1e3," seconds"),s.forEach((a,l)=>{i[l].callback(a);});}).catch(s=>{throw new Error(`GameAssets: during asset loading, an error occured: ${s}`)})}};var Pe=class o extends N__namespace.Filter{static{h(this,"ExpandWithColorFilter");}static ƀev(){return `
33
- attribute vec2 aVertexPosition;
34
- attribute vec2 aTextureCoord;
35
-
36
- uniform mat3 projectionMatrix;
37
-
38
- varying vec2 vTextureCoord;
39
-
40
- void main(void) {
41
- gl_Position = vec4((projectionMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);
42
- vTextureCoord = aTextureCoord;
17
+ offset = ${helpersLib.NumberHelper.toFloatString(t[s].offset)} * ${i};
18
+ iterate(${n}, ${helpersLib.NumberHelper.toFloatString(t[s].multiplier)}, finalColor);
19
+ iterate(${n} * -1.0, ${helpersLib.NumberHelper.toFloatString(t[s].multiplier)}, finalColor);`;}return r+=`
43
20
  }
44
- `}static ƀed(t){let e=`
45
- uniform sampler2D uSampler;
46
- uniform vec2 pixelSize;
47
- uniform float expandSquared;
48
- uniform vec3 color;
21
+ `,r}constructor(t,e){super({glProgram:F__namespace.GlProgram.from({vertex:F__namespace.defaultFilterVert,fragment:Fi.ƀec(we.getValuesForLinearSamplingGauss(t),e)}),resolution:N});}},Gt=class extends F__namespace.Filter{static{h(this,"BlurFilter");}constructor(t=new helpersLib.Vector(2,2)){if(super({resolution:N,compatibleRenderers:F__namespace.RendererType.WEBGL}),this.ƀky=t,this.ƀky=t.multiplyNumber(N).floor(),this.ƀky.x<0||this.ƀky.y<0)throw new Error("BlurFilterLinearSampling: Strength * Resolution must be greater than 0");if(this.ƀky.x>100||this.ƀky.y>100)throw new Error("BlurFilterLinearSampling: Strength * Resolution cannot be higher than 100");this.ƀfk=new Vi(this.ƀky.x,true),this.ƀly=new Vi(this.ƀky.y,false),this.padding=Math.max(this.ƀky.x,this.ƀky.y);}apply(t,e,i,r){let s=F__namespace.TexturePool.getSameSizeTexture(e);this.ƀly.apply(t,e,s,true),this.ƀfk.apply(t,s,i,r),F__namespace.TexturePool.returnTexture(s);}get blendMode(){return this.ƀfk.blendMode}set blendMode(t){this.ƀfk&&(this.ƀfk.blendMode=t,this.ƀly.blendMode=t);}};var ve=class{static{h(this,"Filters");}get red(){return this.ƀjb}set red(t){this.ƀjb=t,this.ƀjc();}get green(){return this.ƀex}set green(t){this.ƀex=t,this.ƀjc();}get blue(){return this.ƀah}set blue(t){this.ƀah=t,this.ƀjc();}get brightness(){return this.ƀam}set brightness(t){this.ƀam=t,this.ƀjc();}get contrast(){return this.ƀbp}set contrast(t){this.ƀbp=t,this.ƀjc();}get blur(){return this.ƀai}set blur(t){let e=helpersLib.Comparator.isNumber(t)?new helpersLib.Vector(t,t):t;(this.ƀai&&e&&!this.ƀai.isEqual(e)||this.ƀai&&!e||!this.ƀai&&e)&&(this.ƀai=e,this.ƀaj&&(this.ƀaj.destroy(),this.ƀaj=void 0),e&&(this.ƀaj=new Gt(e),this.ƀhp()));}constructor(t){this.ƀbl=t,this.ƀjb=1,this.ƀex=1,this.ƀah=1,this.ƀam=1,this.ƀbp=1,this.ƀhp();}removeColorFilter(){this.ƀbe?.destroy(),this.ƀbe=void 0,this.ƀhp();}ƀjc(){this.ƀjb===1&&this.ƀex===1&&this.ƀah===1&&this.ƀam===1&&this.ƀbp===1?this.ƀbe&&(this.ƀbe.destroy(),this.ƀbe=void 0,this.ƀhp()):(this.ƀbe||(this.ƀbe=new F__namespace.ColorMatrixFilter,this.ƀbe.resolution=N,this.ƀhp()),this.ƀbe.matrix=[this.ƀjb*this.ƀbp,0,0,0,this.ƀam-1,0,this.ƀex*this.ƀbp,0,0,this.ƀam-1,0,0,this.ƀah*this.ƀbp,0,this.ƀam-1,0,0,0,1,0]);}ƀhp(){let t=[];this.ƀaj&&t.push(this.ƀaj),this.ƀbe&&t.push(this.ƀbe),this.ƀbl.filters=t;}};var d=class o extends ge{static{h(this,"Container");}static{this.allContainers=new Map;}constructor(){super(),this.addChildTo=this,this.defaultChildOptions={addUnder:false,cropOverflowingParts:false},o.allContainers.set(this.id,this),this.filters=new ve(this.ƀip);}destroy(){this.destroyed||(super.destroy(),o.allContainers.delete(this.id),!this.ƀip.destroyed&&this.ƀip.destroy());}getBoundingMask(){if(this.addChildTo!==this)return this.addChildTo.getBoundingMask();throw new Error(`Container: bounding mask cannot be used without bounding shapes. Display Object: "${this.id}"!`)}displayParent(t,e){let i;if(helpersLib.Comparator.isNumber(t)){if(i=o.allContainers.get(t),!i)throw new Error(`Container: parent not found! id: ${t}`)}else i=t;let r={addUnder:i.defaultChildOptions.addUnder,cropOverflowingParts:i.defaultChildOptions.cropOverflowingParts,...e};if(r.addUnder?i.addChildTo.ƀip.addChildAt(this.ƀip,0):i.addChildTo.ƀip.addChild(this.ƀip),r.cropOverflowingParts)if(i)this.ƀip.mask=i.getBoundingMask().pixiSprite;else throw new Error("Container: cropOverflowingParts can only be used with Container parent!");return this}};var _t=class extends actionsLib.Attachable{static{h(this,"StateAnimation");}onStateChange(t){return this.ƀhr.subscribe(e=>t(e.item,e.nextItem)).attach(this),this}onValueChange(t){return this.ƀht.subscribe(e=>t(e)).attach(this),this}get state(){return {value:this.ƀk.value,item:this.ƀgb,nextItem:this.ƀhj,queuedItem:this.ƀiy,animationState:this.ƀo}}get paused(){return this.ƀp.paused}set paused(t){this.ƀp.paused=t;}constructor(t){super(),this.ƀk={value:0},this.ƀo="idle",this.ƀhr=new actionsLib.Action,this.ƀht=new actionsLib.Action,this.ƀhw={duration:500,animation:x.lineer,...t},this.ƀp=new I(this.ƀk,"value",{duration:this.ƀhw.duration,animation:this.ƀhw.animation,reAnimateHandling:exports.ReAnimateHandlingType.CompletePrevious,completionHandling:exports.AnimationsCompletionHandlingType.StayInCurrentState}),this.ƀp.value.subscribe(()=>{this.ƀk.value!==1&&this.ƀk.value!==0&&this.ƀht.trigger(this.ƀk.value);}).attach(this);}setItem(t,e){if(this.ƀgb===void 0)this.ƀgb=t,this.ƀhr.trigger({item:this.ƀgb,nextItem:this.ƀhj}),this.ƀht.trigger(this.ƀk.value);else if(e?.instant)this.ƀp.completeAnimation(),this.ƀo="idle",this.ƀgb=t,this.ƀhj=void 0,this.ƀiy=void 0,this.ƀk.value=0,this.ƀhr.trigger({item:this.ƀgb,nextItem:this.ƀhj}),this.ƀht.trigger(this.ƀk.value);else switch(this.ƀo){case "idle":t!==this.ƀgb&&(this.ƀo="transitioning",this.ƀhj=t,this.ƀk.value=0,this.ƀhr.trigger({item:this.ƀgb,nextItem:this.ƀhj}),this.ƀht.trigger(this.ƀk.value),this.ƀp.animate({value:1}).tap(()=>this.ƀhn()).attach(this));break;case "transitioning":t===this.ƀgb?(this.ƀiy=void 0,this.ƀo="reverting",this.ƀp.animate({value:0},{duration:this.ƀk.value*this.ƀhw.duration}).tap(()=>this.ƀhn()).attach(this)):t===this.ƀhj?this.ƀiy=void 0:this.ƀiy=t;break;case "reverting":t===this.ƀhj?(this.ƀiy=void 0,this.ƀo="transitioning",this.ƀp.animate({value:1},{duration:(1-this.ƀk.value)*this.ƀhw.duration}).tap(()=>this.ƀhn()).attach(this)):t===this.ƀgb?this.ƀiy=void 0:this.ƀiy=t;break;default:{this.ƀo;throw new Error}}}ƀhn(){switch(this.ƀo){case "transitioning":this.ƀk.value===1&&(this.ƀk.value=0,this.ƀiy!==void 0?(this.ƀo="transitioning",this.ƀgb=this.ƀhj,this.ƀhj=this.ƀiy,this.ƀiy=void 0,this.ƀhr.trigger({item:this.ƀgb,nextItem:this.ƀhj}),this.ƀp.animate({value:1}).tap(()=>this.ƀhn()).attach(this)):(this.ƀo="idle",this.ƀgb=this.ƀhj,this.ƀhj=void 0,this.ƀhr.trigger({item:this.ƀgb,nextItem:this.ƀhj})),this.ƀht.trigger(this.ƀk.value));break;case "reverting":if(this.ƀgb===void 0)throw new Error("StateAnimation: item must be defined when reverting!");this.ƀk.value===0&&(this.ƀiy!==void 0?(this.ƀo="transitioning",this.ƀhj=this.ƀiy,this.ƀiy=void 0,this.ƀk.value=0,this.ƀhr.trigger({item:this.ƀgb,nextItem:this.ƀhj}),this.ƀp.animate({value:1}).tap(()=>this.ƀhn()).attach(this)):(this.ƀo="idle",this.ƀhj=void 0,this.ƀk.value=0,this.ƀhr.trigger({item:this.ƀgb,nextItem:this.ƀhj})),this.ƀht.trigger(this.ƀk.value));break;case "idle":break;default:{this.ƀo;throw new Error}}}};var H=Symbol("empty"),be=class extends actionsLib.Attachable{static{h(this,"ThroughEmptyStateAnimation");}onStateChange(t){return this.ƀhr.subscribe(e=>t(e)).attach(this),this}onValueChange(t){return this.ƀht.subscribe(e=>t(e)).attach(this),this}get state(){let t=this.ƀkv.state.queuedItem;return {value:this.ƀlu,item:this.ƀgb,nextItem:this.ƀo==="appearing"?this.ƀgb:void 0,queuedItem:t===H?void 0:t,animationState:this.ƀo}}constructor(t){super(),this.ƀlu=0,this.ƀo="hidden",this.ƀhr=new actionsLib.Action,this.ƀht=new actionsLib.Action,this.ƀkv=new _t(t).onStateChange((e,i)=>this.ƀez(e,i)).onValueChange(e=>this.ƀfe(e)).attach(this),this.ƀkv.setItem(H);}setItem(t,e){if(e?.instant){this.ƀo=t!==void 0?"appearing":"disappearing",this.ƀkv.setItem(t??H,{instant:true});return}switch(this.ƀo){case "hidden":t!==void 0&&(this.ƀo="appearing",this.ƀkv.setItem(t));break;case "visible":t===void 0?(this.ƀo="disappearing",this.ƀkv.setItem(H)):t!==this.ƀgb&&(this.ƀo="disappearToChange",this.ƀkv.setItem(H),this.ƀkv.setItem(t));break;case "appearing":t===void 0?(this.ƀo="disappearing",this.ƀkv.setItem(H)):t!==this.ƀgb&&(this.ƀlu>0?(this.ƀo="disappearToChange",this.ƀkv.setItem(H),this.ƀkv.setItem(t)):(this.ƀkv.setItem(H,{instant:true}),this.ƀkv.setItem(t)));break;case "disappearing":t!==void 0&&t===this.ƀgb?(this.ƀo="appearing",this.ƀkv.setItem(t)):t!==void 0&&(this.ƀo="disappearToChange",this.ƀkv.setItem(t));break;case "disappearToChange":t===void 0?(this.ƀo="disappearing",this.ƀkv.setItem(H)):t===this.ƀgb?(this.ƀo="appearing",this.ƀkv.setItem(t)):this.ƀkv.setItem(t);break;default:{this.ƀo;throw new Error}}}ƀez(t,e){if(e!==void 0){e!==H&&e!==this.ƀgb&&(this.ƀgb=e,this.ƀo="appearing",this.ƀhr.trigger(this.ƀgb),this.ƀlu!==0&&(this.ƀlu=0,this.ƀht.trigger(0)));return}if(t===H)this.ƀo==="disappearing"&&(this.ƀgb=void 0,this.ƀo="hidden",this.ƀlu=0,this.ƀhr.trigger(void 0),this.ƀht.trigger(0));else {let i=t!==this.ƀgb;this.ƀgb=t,this.ƀo="visible",i&&this.ƀhr.trigger(this.ƀgb),(i||this.ƀlu!==1)&&(this.ƀlu=1,this.ƀht.trigger(1));}}ƀfe(t){let e=this.ƀkv.state.nextItem;if(e===void 0)return;let i=e===H?1-t:t;i!==this.ƀlu&&(this.ƀlu=i,i!==0&&i!==1&&this.ƀht.trigger(i));}};var ji=class extends d{static{h(this,"FadeInContent");}constructor(t,e){super(),this.ƀby=t;let i={duration:200,animation:x.easeInOut,...e};this.alpha=0,this.ƀkv=new be(i).onStateChange(r=>{this.ƀbm?.destroy(),this.ƀbm=void 0,r!==void 0&&(this.ƀbm=new d().displayParent(this).attach(this),this.ƀby({state:r,container:this.ƀbm}));}).onValueChange(r=>{this.alpha=r;}).attach(this);}setState(t,e){return this.ƀkv.setItem(t,e),this}};var M=class{static{h(this,"GameAssets");}static{this.ƀji=new Map;}static{this.ƀq=0;}static getAsset(t){let e=this.ƀji.get(t);if(e)return e;throw new Error(`Game Assets: Resource not found! Key: "${t}"`)}static insertAsset(t,e){let i=e||`a-${this.ƀq++}`;return this.ƀji.set(i,t),i}static destroyAsset(t){let e=this.ƀji.get(t);e&&(e.source.removeAllListeners("change"),e.destroy(true),this.ƀji.delete(t));}static async loadGameAssets(t){let e=new Map,i=[];t.forEach(s=>{if(!helpersLib.Comparator.isString(s.url))throw new Error(`GameAssets: source url should be a string: ${s.url}`);let n=e.get(s.url),a=s.id;n?n.push(a):(e.set(s.url,[a]),i.push({url:s.url,callback:h(l=>{if(l instanceof F__namespace.Texture&&(l.id=a),n=e.get(s.url),n)n.forEach(c=>{this.ƀji.set(c,l);});else throw new Error(`GameAssets: unexpected error, nameGroup is not found! "./"! ${s}`)},"callback")}));});let r=performance.now();return Promise.all(i.map(s=>F__namespace.Assets.load(s.url))).then(s=>{let n=performance.now();console.info("Asset load completed in: ",Math.round(n-r)/1e3," seconds"),s.forEach((a,l)=>{i[l].callback(a);});}).catch(s=>{throw new Error(`GameAssets: during asset loading, an error occured: ${s}`)})}};var Ee=class o extends F__namespace.Filter{static{h(this,"ExpandWithColorFilter");}static ƀec(t){let e=`
22
+ in vec2 vTextureCoord;
23
+ out vec4 finalColor;
49
24
 
50
- varying vec2 vTextureCoord;
25
+ uniform sampler2D uTexture;
26
+ uniform vec4 uInputPixel;
27
+ uniform float uExpandSquared;
28
+ uniform vec3 uColor;
51
29
 
52
30
  void main(void) {
53
31
  float highestAlpha = 0.0;`;return t>0?e+=`
54
32
 
55
33
  for (float x = -${helpersLib.NumberHelper.toFloatString(t)}; x <= ${helpersLib.NumberHelper.toFloatString(t)}; x++) {
56
34
  for (float y = -${helpersLib.NumberHelper.toFloatString(t)}; y <= ${helpersLib.NumberHelper.toFloatString(t)}; y++) {
57
- vec4 neighborColor = texture2D(uSampler, vTextureCoord + vec2(x * pixelSize.x, y * pixelSize.y));
35
+ vec4 neighborColor = texture(uTexture, vTextureCoord + vec2(x * uInputPixel.z, y * uInputPixel.w));
58
36
  float distance = x * x + y * y;
59
- highestAlpha = max(highestAlpha, neighborColor.a * step(distance, expandSquared));
37
+ highestAlpha = max(highestAlpha, neighborColor.a * step(distance, uExpandSquared));
60
38
  }
61
39
  }`:e+=`
62
40
 
63
- vec4 centerColor = texture2D(uSampler, vTextureCoord);
41
+ vec4 centerColor = texture(uTexture, vTextureCoord);
64
42
  highestAlpha = centerColor.a;`,e+=`
65
43
 
66
- gl_FragColor = vec4(color, 1.0) * highestAlpha;
67
- }`,e}constructor(t,e){if(super(o.ƀev(),o.ƀed(t*D)),this.ƀdf=t,this.resolution=D,this.ƀdf=t*D,this.ƀdf<0)throw new Error("ExpandWithColorFilter: Expand * resolution cannot be smaller than 0");if(this.ƀdf>10)throw new Error("ExpandWithColorFilter: Expand * resolution cannot be higher than 10");helpersLib.Comparator.isInteger(this.ƀdf)||(this.ƀdf=Math.floor(this.ƀdf));let i=helpersLib.ColorHelper.normalize(e);this.uniforms.color=new Float32Array([i.red,i.green,i.blue]),this.uniforms.expandSquared=this.ƀdf*this.ƀdf,this.padding=this.ƀdf;}apply(t,e,i,r){this.uniforms.pixelSize=new Float32Array([1/(e.width*D),1/(e.height*D)]),t.applyFilter(this,e,i,r);}};var Ee=class extends N__namespace.Filter{static{h(this,"GlowFilter");}constructor(t){super(),this.resolution=D;let e={blurRadius:1,expand:0,color:helpersLib.ColorHelper.white,blendMode:exports.BlendMode.Screen,...t};this.ƀdg=new Pe(e.expand,e.color);let i=helpersLib.Comparator.isNumber(e.blurRadius)?new helpersLib.Vector(e.blurRadius,e.blurRadius):e.blurRadius;this.ƀai=new Ot(i),this.padding=Math.max(i.x,i.y)+e.expand,this.ƀai.blendMode=N__namespace.BLEND_MODES.SCREEN;}apply(t,e,i,r){let s=t.getFilterTexture();this.ƀdg.apply(t,e,s,N__namespace.CLEAR_MODES.CLEAR),this.ƀai.apply(t,s,i,r),t.returnFilterTexture(s);}};var Jt=class o{static{h(this,"GlowSpriteGenerator");}static{this.ƀey=new Map;}static createGlowSpriteFromSprite(t,e,i){let r=this.ƀbh(e),s=helpersLib.Comparator.isNumber(r.blurRadius)?new helpersLib.Vector(r.blurRadius,r.blurRadius):r.blurRadius,n=this.ƀef(t.texture,s,r.expand,r.color,i),a=new N__namespace.Sprite(n);return this.ƀjx(a,helpersLib.Vector.fromVec2(t.anchor),Math.max(s.x,s.y)+r.expand),a.alpha=r.glowAlpha,a.blendMode=r.blendMode,a}static ƀef(t,e,i,r,s){if(!t.id)throw new Error("GlowSpriteGenerator: baseTexture should have an id");if(s){let n=`${t.id}-${i}-${e.x}-${e.y}-${r.r}-${r.g}-${r.b}`;if(o.ƀey.has(n))return o.ƀey.get(n);{let a=this.ƀeg(t,e,i,r);return o.ƀey.set(n,a),a}}else return this.ƀeg(t,e,i,r)}static ƀeg(t,e,i,r){let s=new N__namespace.Sprite(t);this.ƀdi(s,Math.max(e.x,e.y)+i),s.filters=[new Ee({blurRadius:e,expand:i,color:r})];let n=g.instance.renderer.generateTexture(s);return n.id=M.insertAsset(n),s.destroy(),n}static ƀjx(t,e,i){let r=(i+(t.width-i*2)*e.x)/t.width,s=(i+(t.height-i*2)*e.y)/t.height;t.anchor.set(r,s);}static ƀdi(t,e){if(t.isSprite){let s=new N__namespace.Graphics;t.addChild(s);}let i=t.width,r=t.height;t.calculateBounds=function(){this._bounds.clear(),this._bounds.addFrame(this.transform,-e,-e,i+e,r+e);};}static ƀbh(t){let e={glowAlpha:1,blurRadius:5,expand:0,color:helpersLib.ColorHelper.white,blendMode:exports.BlendMode.Add};return t&&(e={...e,...t}),e}};R.onHardReset.subscribe(()=>{Jt.ƀey.clear();}).attachToRoot();var k=class o extends d{static{h(this,"Sprite");}static createByName(t){let e=g.setupOptions.spriteDefinitions[t];if(!e)throw new Error(`Sprite: Could not find sprite definition with name ${t}.`);return new o(e)}static createSnapshotSprite(t){let e=t.ƀir,i=e.parent;i&&i.removeChild(e);let r=g.instance.renderer.generateTexture(e,{resolution:2,scaleMode:N__namespace.SCALE_MODES.LINEAR,multisample:N__namespace.MSAA_QUALITY.HIGH});i&&i.addChild(e);let n={id:M.insertAsset(r),scale:t.scale,size:t.size,anchor:helpersLib.Vector.zero,destroyAssetOnDestroy:true};return new o(n,{ignoreAnchor:true})}constructor(t,e={}){if(super(),this.ƀlk=1,!t)throw new Error("Sprite: spriteDefinition cannot be nullish!");this.ƀkq=t,this.pixiSprite=new N__namespace.Sprite(M.getAsset(t.id)),this.ƀir.addChild(this.pixiSprite),this.setTextureScale(t.scale),e.textureSize&&(this.pixiSprite.width=e.textureSize.x,this.pixiSprite.height=e.textureSize.y),e.texturePosition&&this.pixiSprite.position.set(e.texturePosition.x,e.texturePosition.y),e.ignoreAnchor||this.pixiSprite.anchor.set(t.anchor.x,t.anchor.y);}destroy(){this.destroyed||(super.destroy(),this.ƀgu?.destroy(),this.ƀak?.destroy(),this.ƀkq.destroyAssetOnDestroy&&(M.destroyAsset(this.ƀkq.id),this.ƀis&&M.destroyAsset(this.ƀis.texture.id)),this.ƀis&&!this.ƀis.destroyed&&this.ƀis.destroy());}setTextureScale(t){return this.textureScale=t,this}get textureScale(){return this.ƀlk}set textureScale(t){this.ƀlk=t,this.pixiSprite.scale.set(t);}get size(){return new helpersLib.Vector(this.pixiSprite.width,this.pixiSprite.height)}getMask(){return this.pixiSprite}set interactive(t){super.interactive=t,t&&this.ƀkq.boundingShapes&&!this.ƀir.hitArea&&(this.ƀir.hitArea=new ls(this.ƀkq.boundingShapes,this.size,helpersLib.Vector.fromVec2(this.ƀkq.anchor)));}setMipmap(t){return this.mipmap=t,this}get mipmap(){return this.pixiSprite.texture.baseTexture.mipmap===N__namespace.MIPMAP_MODES.ON}set mipmap(t){t?this.pixiSprite.texture.baseTexture.mipmap=N__namespace.MIPMAP_MODES.ON:this.pixiSprite.texture.baseTexture.mipmap=N__namespace.MIPMAP_MODES.OFF;}setBlendMode(t){return this.blendMode=t,this}get blendMode(){return this.pixiSprite.blendMode}set blendMode(t){this.pixiSprite.blendMode=t;}setTint(t){return this.tint=t,this}get tint(){return new N__namespace.Color(this.pixiSprite.tint).toRgb()}set tint(t){this.pixiSprite.tint=t;}setShapeAlpha(t){return this.pixiSprite.alpha=t,this}get shapeAlpha(){return this.pixiSprite.alpha}set shapeAlpha(t){this.pixiSprite.alpha=t;}setGlowAlpha(t){return this.glowAlpha=t,this}get glowAlpha(){if(this.ƀis)return this.ƀis.alpha;throw new Error("Sprite: getGlowFilterAlpha cannot be called before glow filter is added.")}set glowAlpha(t){if(this.ƀis)this.ƀis.alpha=t;else throw new Error("Sprite: setGlowFilterAlpha cannot be called before glow filter is added.")}getAlignmentVector(t){let e=helpersLib.Vector.fromVec2(this.ƀkq.anchor).to(t);return new helpersLib.Vector(this.size.x*e.x,this.size.y*e.y)}setGlowEffect(t){return this.ƀis&&(this.ƀis.destroy(),this.ƀis=void 0),t&&(this.ƀis=Jt.createGlowSpriteFromSprite(this.pixiSprite,t,!this.ƀkq.destroyAssetOnDestroy),this.ƀis.position.set(this.pixiSprite.x,this.pixiSprite.y),this.ƀis.scale.set(this.pixiSprite.scale.x,this.pixiSprite.scale.y),this.ƀir.addChild(this.ƀis)),this}showBoundingShape(t){return t?this.ƀak||(this.ƀak=this.ƀbw().setAlpha(.3).setTint({r:0,g:0,b:200}).displayParent(this)):this.ƀak&&(this.ƀak.destroy(),this.ƀak=void 0),this}getBoundingMask(){if(!this.ƀgu){if(!this.ƀkq.boundingShapes)throw new Error("Sprite: cropOverflowingParts cannot be used without polygonDefinition!");this.ƀgu=this.ƀbw(),this.ƀgu.pixiSprite._maskRefCount=Number.POSITIVE_INFINITY,this.ƀgu.pixiSprite.renderable=false,this.ƀgu.displayParent(this);}return this.ƀgu}ƀbw(){if(!this.ƀkq.boundingShapes)throw new Error("Sprite: bounding shape cannot be created without polygonDefinition!");return T.createPolygon(this.ƀkq.boundingShapes,helpersLib.ColorHelper.white).toSprite().attach(this)}download(){let t=g.instance.renderer.extract.canvas(this.ƀir);if(!t.toBlob)throw new Error("Sprite: canvas.toBlob is undefined!");return t.toBlob(e=>{if(!e)throw new Error("Sprite: blob is undefined!");let i=document.createElement("a");document.body.append(i),i.download="sprite.png",i.href=URL.createObjectURL(e),i.click(),i.remove();},"image/png"),this}},ls=class{static{h(this,"CompositeHitArea");}constructor(t,e,i){this.ƀkg=t.map(r=>new N__namespace.Polygon(r.map(s=>new N__namespace.Point(s.x,s.y))));}contains(t,e){return this.ƀkg.some(i=>i.contains(t,e))}};var Te=class{static{h(this,"DashedLineHelper");}static getLines(t,e,i){let r=helpersLib.Vector.fromTo(t,e),s=r.normalize(),n=r.length-i.lineStartGap-i.lineEndGap,a=[];if(n<=0)return a;let l=t.add(s.normalize(i.lineStartGap));if(n<=i.dashGap+i.dashLength*.5)return a.push({from:l,to:l.add(s.normalize(n))}),a;let c=n-i.dashGap,p=i.dashLength+i.dashGap,y=Math.floor(c/p),w=c-p*y;y>=1&&w<i.dashLength&&(w+=p,y--);let A=s.normalize(w/2),Tt=s.normalize(i.dashGap);if(a.push({from:l,to:l.add(A)}),l=l.add(A),y>0){let ce=s.normalize(i.dashLength);helpersLib.ArrayHelper.createEmptyArray(y).forEach(()=>{l=l.add(Tt),a.push({from:l,to:l.add(ce)}),l=l.add(ce);});}return l=l.add(Tt),a.push({from:l,to:l.add(A)}),a}};var T=class o extends d{static{h(this,"Graphics");}static{this.ƀcx=new Map;}static createArrow(t,e){let i=new N__namespace.Graphics,r=[[{x:0,y:-t/2},{x:t*3/8,y:-t/8},{x:t/4,y:0},{x:0,y:-t/4},{x:-t/4,y:0},{x:-t*3/8,y:-t/8}],[{x:0,y:-t/4},{x:t/8-t/30,y:-t/8-t/30},{x:t/8-t/30,y:t*7/16},{x:-t/8+t/30,y:t*7/16},{x:-t/8+t/30,y:-t/8-t/30}]];return i.beginFill(e),r.forEach(s=>{i.drawPolygon(s.map(n=>new N__namespace.Point(n.x,n.y)));}),i.endFill(),new o(i,JSON.stringify({type:"arrow",size:t,color:e}))}static createDashedLine(t,e,i){let r={width:2,dashLength:10,dashGap:4,lineStartGap:0,lineEndGap:0,color:helpersLib.ColorHelper.white,...i},s=new N__namespace.Graphics;return s.lineStyle(r.width,r.color),Te.getLines(t,e,r).forEach(a=>{s.moveTo(a.from.x,a.from.y).lineTo(a.to.x,a.to.y);}),new o(s,JSON.stringify({type:"dashedLine",from:t,to:e,options:r}))}static createVector(t,e,i){let r=new N__namespace.Graphics;return r.lineStyle(2,i),r.moveTo(t.x,t.y),r.lineTo(e.x,e.y),r.lineStyle(1,i),r.beginFill(helpersLib.ColorHelper.white),r.drawCircle(t.x,t.y,3),r.endFill(),new o(r,JSON.stringify({type:"line",start:t,end:e,color:i}))}static createRectangleBorders(t,e,i){let r=new N__namespace.Graphics;return r.beginFill(i),r.drawRect(0,0,t.x,e),r.drawRect(0,e,e,t.y-e*2),r.drawRect(t.x-e,e,e,t.y-e*2),r.drawRect(0,t.y-e,t.x,e),r.endFill(),new o(r,JSON.stringify({type:"rectangle-borders",size:t,borderSize:e,color:i}))}static createRectangle(t,e=helpersLib.ColorHelper.white){let i=new N__namespace.Graphics;return i.beginFill(e),i.drawRect(0,0,t.x,t.y),i.endFill(),new o(i,JSON.stringify({type:"rectangle",size:t,color:e}))}static createCircle(t,e){let i=new N__namespace.Graphics;return i.beginFill(e),i.drawCircle(0,0,t),i.endFill(),new o(i,JSON.stringify({type:"circle",radius:t,color:e}))}static createElipse(t,e){let i=new N__namespace.Graphics;return i.beginFill(e),i.drawEllipse(0,0,t.x,t.y),i.endFill(),new o(i,JSON.stringify({type:"elipse",size:t,color:e}))}static createPolygon(t,e){let i=new N__namespace.Graphics,r=JSON.stringify({type:"polygon",polygon:t,color:e});return i.beginFill(e),t.forEach(s=>{i.drawPolygon(s.map(n=>new N__namespace.Point(n.x,n.y)));}),i.endFill(),new o(i,r)}static createRegularPolygon(t,e,i){let r=new N__namespace.Graphics,s=new helpersLib.Radian(helpersLib.PI_360/t);r.beginFill(i),r.moveTo(e,0);for(let n=1;n<=t;n++){let l=s.multiply(n).vector.normalize(e),c=e+l.x,p=e+l.y;r.lineTo(c,p);}return r.endFill(),new o(r,JSON.stringify({type:"regular-polygon",sides:t,radius:e,color:i}))}constructor(t,e){super(),this.ƀir.addChild(t),this.pixiGraphics=t,this.ƀan=e;}destroy(){this.destroyed||(super.destroy(),!this.pixiGraphics.destroyed&&this.pixiGraphics.destroy());}toSprite(t){let e={cacheName:this.ƀan,cache:false,...t},i=this.ƀes(e.cacheName,e.cache),r={id:i.textureID,scale:1,size:i.bounds,anchor:{x:0,y:0},destroyAssetOnDestroy:!e.cache},s=new k(r,{texturePosition:i.bounds,ignoreAnchor:true});return this.attachToRoot(),this.destroy(),s}ƀes(t,e){if(e){let i=o.ƀcx.get(t);return i||(i=this.ƀci(),o.ƀcx.set(t,i)),i}else return this.ƀci()}ƀci(){let t=g.instance.renderer.generateTexture(this.pixiGraphics);t.id=M.insertAsset(t);let e=this.pixiGraphics.getBounds();return {textureID:t.id,bounds:new helpersLib.Vector(e.x,e.y)}}};var si=class{static{h(this,"AnimationEaseInOutFlatter");}start(){}multiplierFunction(t){return 3*(1-t)*Math.pow(t,2)+Math.pow(t,3)}},xt=class o extends d{static{h(this,"ScrollMaskUI");}static{this.ƀcx=new Map;}constructor(t,e,i,r=exports.ScrollDirection.Vertical){if(super(),i<0)throw new Error("The padding of the scroll mask cannot be lower than '0'");if(e.y<i*2)throw new Error(`The height of the scroll mask cannot be lower than '${i*2}'`);let s=new d;r===exports.ScrollDirection.Horizontal?this.ƀcc(e,i,s):this.ƀcj(e,i,s),this.ƀgu=k.createSnapshotSprite(s).attach(this),s.destroy(),t.setMask(this.ƀgu);}ƀcj(t,e,i){e>0&&this.ƀbz(new helpersLib.Vector(t.x,e)).displayParent(i).attach(i),T.createRectangle(new helpersLib.Vector(t.x,t.y-e*2),helpersLib.ColorHelper.white).toSprite().setPosition(new helpersLib.Vector(0,e),{round:false}).displayParent(i).attach(i),e>0&&this.ƀbz(new helpersLib.Vector(t.x,e)).setPosition(new helpersLib.Vector(t.x,t.y),{round:false}).setRotation(helpersLib.Radian.get180).displayParent(i).attach(i);}ƀcc(t,e,i){e>0&&this.ƀbz(new helpersLib.Vector(t.y,e)).setPosition(new helpersLib.Vector(0,t.y),{round:false}).setRotation(helpersLib.Radian.get270).displayParent(i).attach(i),T.createRectangle(new helpersLib.Vector(t.x-e*2,t.y),helpersLib.ColorHelper.white).toSprite().setPosition(new helpersLib.Vector(e,0),{round:false}).displayParent(i).attach(i),e>0&&this.ƀbz(new helpersLib.Vector(t.y,e)).setPosition(new helpersLib.Vector(t.x,0),{round:false}).setRotation(helpersLib.Radian.get90).displayParent(i).attach(i);}ƀbz(t){let i={id:this.ƀca(t.y),scale:1,size:t,anchor:{x:0,y:0}};return new k(i,{textureSize:t,ignoreAnchor:true})}ƀca(t){let e=JSON.stringify({type:"gradient",length:t}),i=o.ƀcx.get(e);if(!i){let r=document.createElement("canvas");r.width=1,r.height=t;let s=r.getContext("2d");if(s){let n=new si;helpersLib.ArrayHelper.createIntegerArray(t).forEach(l=>{let c=`rgba(255, 255, 255, ${n.multiplierFunction(l/t)})`;s.fillStyle=c,s.fillRect(0,l,1,1);});let a=N__namespace.Texture.from(r);i=M.insertAsset(a),o.ƀcx.set(e,i);}else throw new Error("Canvas context is null")}return i}};exports.SlideStateAnimationState=void 0;(function(o){o[o.Appear=1]="Appear",o[o.Disappear=2]="Disappear";})(exports.SlideStateAnimationState||(exports.SlideStateAnimationState={}));var Re=class extends actionsLib.Attachable{static{h(this,"SlideStateAnimation");}onStateChange(t){return this.ƀhs.subscribe(e=>t(e.state,e.index)).attach(this),this}onValueChange(t){return this.ƀhu.subscribe(e=>t(e.value,e.index)).attach(this),this}get state(){return {value:this.ƀky.state.value,item:this.ƀfv,nextItem:this.ƀhj,queuedItem:this.ƀky.state.queuedItem,animationState:this.ƀo}}constructor(t){super(),this.ƀo="idle",this.ƀhs=new actionsLib.Action,this.ƀhu=new actionsLib.Action,this.ƀhx={duration:500,animation:x.easeInOutCubic,...t},this.ƀky=new Dt({duration:this.ƀhx.duration,animation:this.ƀhx.animation}).onStateChange((e,i)=>this.ƀfb(e,i)).onValueChange(e=>this.ƀfg(e)).attach(this);}setIndex(t,e){if(!helpersLib.Comparator.isInteger(t))throw new Error("SlideStateAnimation: index must be an integer!");this.ƀfv===void 0?(this.ƀfv=t,this.ƀhs.trigger({state:exports.SlideStateAnimationState.Appear,index:t}),this.ƀky.setItem(t,e)):this.ƀfv!==t?this.ƀhj!==t?this.ƀo==="idle"?(this.ƀo=t>this.ƀfv?"transitionForward":"transitionBackward",this.ƀhj=t,this.ƀhs.trigger({state:exports.SlideStateAnimationState.Appear,index:this.ƀhj}),this.ƀky.setItem(t,e)):this.ƀky.setItem(t,e):this.ƀo==="reverting"&&this.ƀhj===t&&(this.ƀo=t>this.ƀfv?"transitionForward":"transitionBackward",this.ƀky.setItem(t,e)):(this.ƀo==="transitionForward"||this.ƀo==="transitionBackward")&&(this.ƀo="reverting",this.ƀky.setItem(t,e));}ƀfb(t,e){switch(this.ƀfv!==void 0&&this.ƀfv!==t&&this.ƀfv!==e&&this.ƀhs.trigger({state:exports.SlideStateAnimationState.Disappear,index:this.ƀfv}),this.ƀhj!==void 0&&this.ƀhj!==t&&this.ƀhj!==e&&this.ƀhs.trigger({state:exports.SlideStateAnimationState.Disappear,index:this.ƀhj}),e!==void 0&&e!==this.ƀfv&&e!==this.ƀhj&&this.ƀhs.trigger({state:exports.SlideStateAnimationState.Appear,index:e}),this.ƀo){case "idle":break;case "transitionForward":case "transitionBackward":e===void 0?(this.ƀo="idle",this.ƀfv=this.ƀhj,this.ƀhj=void 0):this.ƀfv!==t&&this.ƀfc(t,e);break;case "reverting":e===void 0?(this.ƀo="idle",this.ƀhj=void 0):this.ƀfv!==e&&this.ƀfc(t,e);break;default:{this.ƀo;throw new Error}}}ƀfc(t,e){this.ƀfv=t,this.ƀhj=e,this.ƀhu.trigger({value:0,index:this.ƀfv}),this.ƀo=this.ƀfv<this.ƀhj?"transitionForward":"transitionBackward";}ƀfg(t){let e=1;(this.ƀo==="transitionBackward"||this.ƀo==="reverting"&&this.ƀfv!==void 0&&this.ƀhj!==void 0&&this.ƀfv>this.ƀhj)&&(e=-1),(this.ƀo==="idle"||t!==0)&&this.ƀhu.trigger({value:helpersLib.NumberHelper.ensurePositiveZero(-e*t),index:this.ƀfv}),this.ƀhj!==void 0&&this.ƀhu.trigger({value:helpersLib.NumberHelper.ensurePositiveZero(e*(1-t)),index:this.ƀhj});}};exports.ScrollDirection=void 0;(function(o){o[o.Horizontal=1]="Horizontal",o[o.Vertical=2]="Vertical";})(exports.ScrollDirection||(exports.ScrollDirection={}));var oi=class extends d{static{h(this,"SlideInContentByIndex");}constructor(t,e){super(),this.ƀby=t,this.ƀcs="x",this.ƀbo=new Map,this.ƀhx={duration:300,animation:x.easeInOutCubic,size:new helpersLib.Vector(500,500),margin:20,direction:exports.ScrollDirection.Horizontal,...e};let i=this.ƀhx.direction===exports.ScrollDirection.Horizontal?new helpersLib.Vector(this.ƀhx.size.x+this.ƀhx.margin*2,this.ƀhx.size.y):new helpersLib.Vector(this.ƀhx.size.x,this.ƀhx.size.y+this.ƀhx.margin*2),r=new d().setPosition(this.ƀhx.direction===exports.ScrollDirection.Horizontal?new helpersLib.Vector(-this.ƀhx.margin,0):new helpersLib.Vector(0,-this.ƀhx.margin),{round:false}).displayParent(this).attach(this);this.ƀcd(i,this.ƀhx.margin,this.ƀhx.direction,r),this.ƀcs=this.ƀhx.direction===exports.ScrollDirection.Horizontal?"x":"y",this.ƀky=new Re({duration:this.ƀhx.duration,animation:this.ƀhx.animation}).onStateChange((s,n)=>{if(s===exports.SlideStateAnimationState.Appear){let a=new d().displayParent(this).attach(this);this.ƀbo.set(n,a),this.ƀby({index:n,container:a});}else {let a=this.ƀbo.get(n);a&&(a.destroy(),this.ƀbo.delete(n));}}).onValueChange((s,n)=>{let a=this.ƀbo.get(n);if(a){let l={x:0,y:0};l[this.ƀcs]=i[this.ƀcs]*s+this.ƀhx.margin,a.setPosition(helpersLib.Vector.fromVec2(l),{round:false});}}).attach(this),this.addChildTo=r;}setIndex(t,e){return this.ƀky.setIndex(t,e),this}ƀcd(t,e,i,r){new xt(r,new helpersLib.Vector(t.x,t.y),e,i).attach(this);}},Ji=class extends oi{static{h(this,"SlideInContent");}constructor(t,e,i){super(r=>{let s=this.indexToItem.get(r.index);if(s)e({index:r.index,item:s,container:r.container});else throw new Error(`SlideInContent: The item with index '${r.index}' is not part of the items list`)},i),this.itemToIndex=new Map,this.indexToItem=new Map,t.forEach((r,s)=>{this.itemToIndex.set(r,s),this.indexToItem.set(s,r);});}setItem(t,e){let i=this.itemToIndex.get(t);if(i!==void 0)this.setIndex(i,e);else throw new Error(`SlideInContent: The item '${t}' is not part of the items list`);return this}};var bt=class{static{h(this,"VectorSet");}constructor(){this.ƀlx=new Map;}add(t){let e=this.ƀlx.get(t.x);e||(e=new Set,this.ƀlx.set(t.x,e)),e.add(t.y);}has(t){let e=this.ƀlx.get(t.x);return e?e.has(t.y):false}delete(t){let e=this.ƀlx.get(t.x);return e?e.delete(t.y):false}};var ni=class{static{h(this,"DeltaTime");}static adjustMultiplier(t,e){return Math.pow(t,e)}};var G=class{static{h(this,"PositionToGridPositionConverter");}static areaToGridArea(t,e){return new helpersLib.Rectangle(this.positionToGridPosition(t.topLeft,e),this.positionToGridPosition(t.bottomRight,e))}static positionToGridPosition(t,e){return t.divideNumber(e).floor()}static gridPositionToPosition(t,e){return t.add(new helpersLib.Vector(.5,.5)).multiplyNumber(e)}};var Xt=class{static{h(this,"ClosestAvailableSpaceHelper");}static findByConvertingGridSpace(t,e,i){let r=new helpersLib.Vector(Math.ceil(e.size.x/i)-1,Math.ceil(e.size.y/i)-1),s=G.areaToGridArea(e,i);if(this.ƀau(t,s))return helpersLib.Vector.zero;let n=t.movePositionInsideGrid(s.topLeft),a=helpersLib.Vector.fromTo(s.topLeft,n),l=this.find(t,n,r);if(l){let c=l.add(a),p=helpersLib.Vector.fromTo(s.topLeft.multiplyNumber(i),e.topLeft);return new helpersLib.Vector(c.x*i+((r.x+1)*i-e.size.x)/2-p.x,c.y*i+((r.y+1)*i-e.size.y)/2-p.y)}}static find(t,e,i){let r=new bt,s=new helpersLib.Queue(e);for(;s.notEmpty;){let n=s.pop();r.add(n);let a=new helpersLib.Rectangle(n,n.add(i));if(this.ƀau(t,a))return helpersLib.Vector.fromTo(e,n);t.getNeighborPositions(n,helpersLib.GridNeighborType.Ortogonal).forEach(l=>{r.has(l)||s.add(l);});}}static ƀau(t,e){if(!t.isAreaWithinBounds(e))return false;for(let i=e.topLeft.y;i<=e.bottomRight.y;i++)for(let r=e.topLeft.x;r<=e.bottomRight.x;r++)if(!t.get(new helpersLib.Vector(r,i)))return false;return true}};var Yi=class{static{h(this,"PathfinderNode");}constructor(t,e,i,r=void 0){this.position=t,this.distanceFromStart=e,this.distanceToEnd=i,this.parent=r,this.closed=false;}get pathLength(){return this.distanceFromStart+this.distanceToEnd}isEqual(t){return helpersLib.Vector.isEqual(this.position,t)}createSolutionPath(t){let e=[this.position],i=this.parent;for(;i!==void 0;)e.push(i.position),i=i.parent;return e.reverse(),{directPathAvailable:t,path:e}}getDistance(t){return this.position.getDistance(t)}},Rs=class{static{h(this,"PathfinderGrid");}constructor(t,e){this.ƀfa=t,this.ƀkv=e,this.ƀhw=new helpersLib.BinaryHeap("min"),this.ƀba=[],this.ƀhl=new helpersLib.Grid({size:t.size,defaultValue:void 0});let i=new Yi(this.ƀkv,0,Number.MAX_SAFE_INTEGER);this.ƀhw.add(i.pathLength,i);}get hasOpenNodes(){return this.ƀhw.size>0}getNeighbors(t,e){return this.ƀfa.getNeighborPositions(t.position,e).filter(i=>this.ƀfa.get(i)).map(i=>this.ƀhl.get(i)||this.ƀce(i))}popLowestPathCostNode(){let t=this.ƀhw.pop();return this.ƀhw.delete(t),t.closed=true,this.ƀba.push(t),t}changeNodeCost(t,e,i,r){this.ƀhw.delete(t),t.distanceFromStart=e,t.distanceToEnd=t.getDistance(i),t.parent=r,this.ƀhw.add(t.pathLength,t);}getBestClosedNode(){return this.ƀba.reduce((t,e)=>t.distanceToEnd<e.distanceToEnd?t:e)}ƀce(t){let e=new Yi(t,Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER);return this.ƀhl.set(t,e),this.ƀhw.add(e.pathLength,e),e}},Kt=class{static{h(this,"PathFinder");}static findPath(t,e,i,r){let s=new Rs(t,e);for(;s.hasOpenNodes;){let n=s.popLowestPathCostNode();if(n.isEqual(i))return n.createSolutionPath(true);let a=s.getNeighbors(n,r);for(let l of a)if(!l.closed){let c=n.distanceFromStart+n.getDistance(l.position);c<l.distanceFromStart&&s.changeNodeCost(l,c,i,n);}}return s.getBestClosedNode().createSolutionPath(false)}};var Zt=class{static{h(this,"VectorFieldPathFinder");}constructor(t,e){this.ƀle=t,this.ƀy=e,this.ƀfj=this.ƀei(this.ƀy.size),this.ƀmg=new helpersLib.Grid({size:this.ƀy.size,defaultValue:this.ƀfj}),this.ƀct=new helpersLib.Grid({size:this.ƀy.size,defaultValue:void 0});let i=new bt,r=new helpersLib.Queue;for(this.ƀdv(this.ƀy.cropAreaOutsideOfTheGrid(t)).forEach(n=>{this.ƀmg.set(n,0),r.add(n);});r.notEmpty;){let n=r.pop();if(!i.has(n)){i.add(n);let a=this.ƀmg.getOrFail(n);this.ƀen(n,this.ƀy).forEach(l=>{if(!i.has(l.position)){let c=this.ƀmg.getOrFail(l.position),p=a+l.distance;this.ƀy.getOrFail(l.position)&&p<c&&(this.ƀmg.set(l.position,p),r.add(l.position));}});}}}getDirectionToTarget(t){if(!t.isInsideRectangle(this.ƀle)){if(t=this.ƀmg.movePositionInsideGrid(t),this.ƀct.has(t))return this.ƀct.get(t);{let e=this.ƀen(t,this.ƀy),i;return this.ƀmg.getOrFail(t)>=this.ƀfj?e.some(s=>this.ƀy.get(s.position))&&(e.some(n=>!this.ƀy.get(n.position))?i=this.ƀec(e):i=this.ƀdx(t,e)):i=this.ƀdx(t,e),this.ƀct.set(t,i),i}}}ƀec(t){let e=t.filter(i=>this.ƀy.get(i.position)).map(i=>i.direction.radian);return helpersLib.Radian.getAverage(...e)}ƀdx(t,e){let i=e.filter(r=>this.ƀmg.getOrFail(r.position)<this.ƀfj).reduce((r,s)=>{let n=this.ƀmg.getOrFail(s.position)+s.distance;return n<r.bestWeight?(r.bestDirections=[s.direction],r.bestWeight=n):n===r.bestWeight&&r.bestDirections.push(s.direction),r},{bestDirections:[],bestWeight:this.ƀfj}).bestDirections;return this.ƀet(i,t)}ƀet(t,e){if(t.length>0){let i=t.reduce((r,s)=>r.add(s),helpersLib.Vector.zero);if(i.isZero()||!this.ƀgb(e,i))return helpersLib.Random.pickRandomElement(t).radian;if(t.length>=1)return i.radian}}ƀgb(t,e){let i=t.add(this.ƀly(e));return this.ƀy.isPointWithinBounds(i)&&this.ƀy.getOrFail(i)}ƀen(t,e){return this.ƀmg.getNeighborDirections(t,helpersLib.GridNeighborType.All).map(i=>({position:t.add(i),direction:i,distance:i.x!==0&&i.y!==0?14:10}))}ƀdv(t){let e=[];for(let i=t.topLeft.y;i<=t.bottomRight.y;i++)for(let r=t.topLeft.x;r<=t.bottomRight.x;r++)e.push(new helpersLib.Vector(r,i));return e}ƀly(t){let e=t.normalize().round();return new helpersLib.Vector(e.x,e.y)}ƀei(t){return (t.x+t.y)*20}};var P=class o{static{h(this,"AudioAssets");}static{this.ƀam=new Map;}static{this.context=new AudioContext;}static async load(t){await Promise.all(t.map(e=>fetch(e.url).then(i=>i.arrayBuffer()).then(i=>this.context.decodeAudioData(i)).then(i=>this.ƀam.set(e.id,i))));}static createSource(t){let e=o.ƀdw(t),i=o.context.createBufferSource();return i.buffer=e,i}static ƀdw(t){let e=this.ƀam.get(t);if(!e)throw new Error(`Audio: Sound with id ${t} was not loaded.`);return e}};R.onHardReset.subscribe(()=>{P.context=new AudioContext,P.ƀam.clear();}).attachToRoot();var Y=1e3,J=class o{static{h(this,"Audio");}static ƀka(){return this.ƀfy=new o,this.ƀfy}constructor(){this.ƀgx=P.context.createGain(),this.ƀgw=P.context.createGain(),this.ƀhi=P.context.createGain(),this.ƀkj=P.context.createGain(),this.ƀgx.connect(P.context.destination),this.ƀgw.connect(this.ƀgx),this.ƀhi.connect(this.ƀgw),this.ƀkj.connect(this.ƀgw),this.ƀgy=new I(this.ƀgx.gain,"value",{duration:500*2,animation:x.easeIn,reAnimateHandling:exports.ReAnimateHandlingType.CompletePrevious,completionHandling:exports.AnimationsCompletionHandlingType.StayInCurrentState}),this.ƀgy.set({value:0});}setVolumes(t){this.ƀgw.gain.value=t.master,this.ƀhi.gain.value=t.music,this.ƀkj.gain.value=t.sound;}appear(t,e="ease"){switch(e){case "ease":return this.ƀgy.set({value:t?0:1}),this.ƀgy.animate({value:t?1:0}).chainToRoot();case "instant":return this.ƀgy.set({value:t?1:0}),actionsLib.SingleEvent.instant();default:{throw new Error}}}};R.onHardReset.subscribe(()=>{J.ƀka();}).attachToRoot();var Ms=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s};exports.CameraGateway=class st extends q(){static{h(this,"CameraGateway");}};exports.CameraGateway=Ms([u()],exports.CameraGateway);var Bs=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},Pt=class extends q(){static{h(this,"CameraViewGateway");}};Pt=Bs([u()],Pt);var Ki;(function(o){o.BackgroundScreen="backgroundScreen",o.Background="background",o.Main="main",o.Foreground="foreground",o.ForegroundScreen="foregroundScreen";})(Ki||(Ki={}));exports.FocusingAnimation=void 0;(function(o){o[o.Instant=1]="Instant",o[o.EaseInOut=2]="EaseInOut",o[o.EaseOut=3]="EaseOut";})(exports.FocusingAnimation||(exports.FocusingAnimation={}));var qt=class{static{h(this,"Camera");}get position(){return this.ƀap.getCameraPosition()}constructor(){this.ƀap=S.get(exports.CameraGateway),this.ƀat=S.get(Pt),this.ƀap.createCamera(),this.layers=this.ƀat.getLayers();}setPosition(t){this.ƀap.setPosition(t);}setTransition(t){this.ƀap.setTransition(t);}appear(t,e="alpha",i=0){return this.ƀat.appear(t,e,i)}screenPositonToStagePosition(t){return this.ƀat.screenPositonToStagePosition(t)}};var g=class o{static{h(this,"Game");}static get instance(){return this.ƀfy}static{this.pause=actionsLib.Reducer.createOr();}static{this.freeze=actionsLib.Reducer.createOr();}static get camera(){return this.ƀao}static get audio(){return this.ƀx}static appear(t,e){let i=e?.audio??"ease",r=e?.camera??"alpha";return actionsLib.ActionLib.all([this.audio.appear(t,i),this.camera.appear(t,r,i!=="instant"?0:500)]).mapToVoid().chainToRoot()}static get time(){return m.ƀll}static get setupOptions(){return this.ƀkd}constructor(t){if(this.ƀjp=new actionsLib.Variable(helpersLib.Vector.zero),this.screenSize=this.ƀjp.notifier,this.ƀjq=new actionsLib.Variable(helpersLib.Vector.zero),this.screenSizeCenter=this.ƀjq.notifier,this.devMode=false,o.ƀfy)throw new Error("There can be only one Game instance!");this.ƀbk={screenResolution:void 0,maxScreenResolution:void 0,devMode:false,backgroundColor:helpersLib.ColorHelper.black,antialias:false,resolution:1,...t},this.devMode=this.ƀbk.devMode||false;let e=helpersLib.JsonHelper.removeUndefinedProperties({backgroundColor:this.ƀbk.backgroundColor,autoStart:false,antialias:this.ƀbk.antialias,resolution:this.ƀbk.resolution,width:this.ƀbk.screenResolution?.width,height:this.ƀbk.screenResolution?.height});this.ƀiq=new N__namespace.Application(e);let i=o.pause.effect(false).attachToRoot();o.freeze.subscribe(r=>{i.update(r),r?P.context.suspend():P.context.resume();}).attachToRoot();}async setup(t){o.ƀkd=t;let e=document.body.appendChild(this.ƀiq.view);this.ƀjz(e),await Promise.all([M.loadGameAssets(t.spriteAssetDefinitions),M.loadGameAssets(t.fontAssetDefinitions),P.load(t.soundAssetDefinitions)]),o.ƀfy=this,this.renderer=this.ƀiq.renderer,globalThis.ƀa=this.ƀiq,this.ƀfe(),o.ƀao=new qt,o.ƀx=J.ƀka(),this.ƀiq.start(),this.ƀiq.ticker.add(()=>{o.freeze.value||m.triggerUpdateTick(this.ƀiq.ticker.deltaMS);});}setResolution(t){if(this.ƀiq.renderer.resolution!==t){this.ƀiq.renderer.resolution=t;let e=this.ƀer();this.ƀiq.renderer.resize(e.x,e.y);}}ƀfe(){this.ƀdb(),this.ƀjy(),window.addEventListener("resize",t=>{this.ƀdb(),this.ƀjy();});}ƀdb(){let t=this.ƀer();(t.x!==this.ƀiq.screen.width||t.y!==this.ƀiq.screen.height)&&this.ƀiq.renderer.resize(t.x,t.y);}ƀjy(){let t=new helpersLib.Vector(this.ƀiq.screen.width,this.ƀiq.screen.height);this.ƀjp.value=t,this.ƀjq.value=t.multiplyNumber(.5).round();}ƀer(){let t=this.ƀbk.screenResolution?.width??window.innerWidth,e=this.ƀbk.screenResolution?.height??window.innerHeight;return this.ƀbk.maxScreenResolution&&(t=Math.min(t,this.ƀbk.maxScreenResolution.width),e=Math.min(e,this.ƀbk.maxScreenResolution.height)),new helpersLib.Vector(t,e)}ƀjz(t){this.ƀbk.maxScreenResolution&&(t.style.maxWidth=`${this.ƀbk.maxScreenResolution?.width}px`,t.style.maxHeight=`${this.ƀbk.maxScreenResolution?.height}px`),t.style.width="100%",t.style.height="100%";}};var Qt=class o extends actionsLib.IDAttachable{static{h(this,"Sound");}static createByName(t,e){let i=g.setupOptions.soundDefinitions[t];if(!i)throw new Error(`Sound: Could not find sound definition with name ${t}.`);return new o(i,e)}get volume(){return this.ƀdr.gain.value}set volume(t){this.setVolume(t);}setVolume(t){return this.ƀdr.gain.value=t,this}constructor(t,e){super(),this.ƀkk=t,this.ƀdr=P.context.createGain(),this.ƀdr.connect(J.ƀfy.ƀkj),this.ƀfi=this.ƀdr,e?.volume!==void 0&&(this.volume=e.volume),this.ƀiw(e?.time??0);}destroy(){this.destroyed||(super.destroy(),this.ƀla(),this.ƀdr?.disconnect());}ƀlv(){this.ƀfi.disconnect(),this.ƀfi.connect(J.ƀfy.ƀhi);}ƀiw(t){this.ƀla();let e=this.ƀkk.loop;if(this.ƀkt=helpersLib.NumberHelper.clamp(t,0,e?e.to:this.ƀkk.duration),e){let i=e.from,r=e.to;this.ƀix({soundID:this.ƀkk.id,start:this.ƀkt,end:this.ƀkt<i?i:r,loop:false,onComplete:h(()=>{this.ƀkn.disconnect(),this.ƀix({soundID:this.ƀkk.id,start:i,end:r,loop:true});},"onComplete")});}else this.ƀix({soundID:this.ƀkk.id,start:this.ƀkt,end:void 0,loop:false,onComplete:h(()=>this.destroy(),"onComplete")});}ƀla(){this.ƀkn&&(this.ƀkn.onended=null,this.ƀkn.stop(),this.ƀkn.disconnect());}ƀix(t){this.ƀkn=P.createSource(t.soundID),this.ƀkn.connect(this.ƀdr),t.onComplete&&(this.ƀkn.onended=t.onComplete),t.loop?(this.ƀkn.loop=true,this.ƀkn.loopStart=t.start,this.ƀkn.loopEnd=t.end??this.ƀkn.buffer.duration,this.ƀkn.start(0,t.start)):this.ƀkn.start(0,t.start,t.end?t.end-t.start:void 0);}};var Hs=800,Ce=-128,nt=class o extends Qt{static{h(this,"AdvancedSound");}static createByName(t,e){let i=g.setupOptions.soundDefinitions[t];if(!i)throw new Error(`AdvancedSound: Could not find sound definition with name ${t}.`);return new o(i,e)}constructor(t,e){super(t,e),this.ƀll=new actionsLib.Variable(0),this.time=this.ƀll.notifier,this.ƀkw=P.context.currentTime-this.ƀkt,this.ƀll.value=this.ƀkt,m.beforeSceneUpdateAction.subscribe(()=>{this.ƀll.value=P.context.currentTime-this.ƀkw;}).attach(this),this.ƀfi.disconnect(),this.ƀkb(e?.fade?helpersLib.NumberHelper.clamp(e.fade,0,1):0),this.ƀkc(e?.muffle?helpersLib.NumberHelper.clamp(e.muffle,0,1):0),this.ƀfi.connect(J.ƀfy.ƀkj);}ƀkb(t=0){this.ƀdk=P.context.createGain(),this.ƀdk.gain.value=1-t,this.ƀdj=new I(this.ƀdk.gain,"value",{duration:500,animation:x.lineer,reAnimateHandling:exports.ReAnimateHandlingType.CompletePrevious,completionHandling:exports.AnimationsCompletionHandlingType.StayInCurrentState}),this.ƀfi.connect(this.ƀdk),this.ƀfi=this.ƀdk;}ƀkc(t=0){this.ƀhg=P.context.createBiquadFilter(),this.ƀhg.type="highshelf",this.ƀhg.frequency.value=Hs,this.ƀhg.gain.value=t*Ce,this.ƀhh=new I(this.ƀhg.gain,"value",{duration:500,animation:x.lineer,reAnimateHandling:exports.ReAnimateHandlingType.CompletePrevious,completionHandling:exports.AnimationsCompletionHandlingType.StayInCurrentState}),this.ƀfi.connect(this.ƀhg),this.ƀfi=this.ƀhg;}close(){return this.ƀbb?this.onDestroy():(this.ƀbb=true,this.fade(1,Y).notIdle().chain(this).tap(()=>this.destroy()).chainToRoot())}notifyOnTime(t){return this.time.value>t?actionsLib.SingleEvent.createDestroyed():actionsLib.SingleEvent.create(e=>{let i=this.time.filter(r=>r>=t).tap(()=>e()).attach(this);return ()=>i.destroy()})}setFade(t){t=helpersLib.NumberHelper.clamp(t,0,1),this.ƀdj.set({value:1-t});}fade(t,e=500){t=helpersLib.NumberHelper.clamp(t,0,1);let i=t>1-this.ƀdk.gain.value;return e===0?(this.ƀdj.set({value:1-t}),actionsLib.SingleEvent.instant()):this.ƀdj.animate({value:1-t},{duration:e,animation:i?x.easeOut:x.easeIn}).chain(this)}setMuffle(t){t=helpersLib.NumberHelper.clamp(t,0,1),this.ƀhh.set({value:t*Ce});}muffle(t,e=500){return t=helpersLib.NumberHelper.clamp(t,0,1),e===0?(this.ƀhh.set({value:t*Ce}),actionsLib.SingleEvent.instant()):this.ƀhh.animate({value:t*Ce},{duration:e}).chain(this)}destroy(){this.destroyed||(this.ƀdk.disconnect(),this.ƀhg.disconnect()),super.destroy();}};var te=class o extends actionsLib.IDAttachable{static{h(this,"Music");}static createByName(t,e){let i=g.setupOptions.soundDefinitions[t];if(!i)throw new Error(`AdvancedSound: Could not find sound definition with name ${t}.`);return new o(i,e)}get time(){switch(this.ƀkm.value.type){case "paused":return this.ƀkm.value.value.time;case "playing":return this.ƀkm.value.value.time.value;default:{this.ƀkm.value;throw new Error}}}get volume(){return this.ƀkm.value.value.volume}set volume(t){this.setVolume(t);}setVolume(t){return this.ƀkm.value.value.volume=t,this}constructor(t,e){super(),this.ƀhx={stopPlayingOnPause:true,...e},this.ƀkl=t.id;let i;if(this.ƀhx.stopPlayingOnPause&&g.pause.value)i={type:"paused",value:{time:0,volume:1}};else {let r=new nt(t,this.ƀhx).attach(this);r.ƀlv(),i={type:"playing",value:r};}this.ƀkm=new actionsLib.Variable(i),this.ƀhx.stopPlayingOnPause&&(this.ƀid=g.pause.subscribe(r=>this.ƀfd(r)).attach(this));}notifyOnTime(t){return actionsLib.SingleEvent.create(e=>{let i=this.ƀkm.asyncMapDropOngoing((r,s)=>{switch(r.type){case "paused":s.drop();break;case "playing":return r.value.notifyOnTime(t);default:{throw new Error}}}).toSingleEvent().tap(()=>e()).attach(this);return ()=>i.destroy()})}close(){return this.ƀbb?this.onDestroy():(this.ƀbb=true,this.ƀid?.destroy(),actionsLib.SingleEvent.instant().asyncTap(()=>actionsLib.ActionLib.all([this.ƀkm.value.type==="playing"?this.ƀkm.value.value.close():actionsLib.SingleEvent.instant(),this.ƀdl?.onDestroy()??actionsLib.SingleEvent.instant()])).chain(this).tap(()=>this.destroy()).chainToRoot())}ƀfd(t){if(t){if(this.ƀkm.value.type==="playing"){let e=this.ƀkm.value.value;this.ƀkm.value={type:"paused",value:{time:e.time.value,volume:e.volume}},this.ƀdl=e,actionsLib.ActionLib.all([e.fade(1,Y),e.muffle(1,Y)]).tap(()=>{this.ƀdl=void 0,e.destroy();}).attach(this);}}else if(this.ƀkm.value.type==="paused"){let{volume:e,time:i}=this.ƀkm.value.value,r=nt.createByName(this.ƀkl,{volume:e,time:i,fade:1,muffle:1}).attach(this);r.ƀlv(),actionsLib.ActionLib.all([r.fade(0,Y),r.muffle(0,Y)]).attach(this),this.ƀkm.value={type:"playing",value:r};}}};var li=class extends actionsLib.IDAttachable{static{h(this,"MusicPlayer");}get time(){return this.ƀiy?this.ƀiy.time:0}get volume(){return this.ƀmf}set volume(t){this.setVolume(t);}setVolume(t){return this.ƀmf=t,this.ƀiy&&(this.ƀiy.volume=t),this.ƀic&&(this.ƀic.volume=t),this}constructor(t){super(),this.ƀmf=1,this.ƀhx={stopPlayingOnPause:true,playWhenPaused:void 0,volume:1,...t},this.ƀmf=this.ƀhx.volume,this.ƀhx.playWhenPaused&&this.ƀke(this.ƀhx.playWhenPaused);}play(t){if(this.ƀbb)throw new Error("Play is called while music player is destroyed.");return this.ƀco=t,actionsLib.SingleEvent.instant().asyncTap(()=>{let e=this.ƀiy;if(e)return this.ƀiy=void 0,e.close()}).map(()=>{if(this.ƀco===t)return this.ƀiy=te.createByName(t,{stopPlayingOnPause:this.ƀhx.stopPlayingOnPause,volume:this.ƀmf}).attach(this),this.ƀiy}).chain(this)}stop(){return actionsLib.SingleEvent.instant().asyncTap(()=>{let t=this.ƀiy;if(t)return t.close().tap(()=>{t===this.ƀiy&&(this.ƀiy=void 0);})}).chain(this)}close(){return this.ƀbb?this.onDestroy():(this.ƀbb=true,this.ƀid?.destroy(),actionsLib.SingleEvent.instant().asyncTap(()=>actionsLib.ActionLib.all([this.ƀiy?.close()??actionsLib.SingleEvent.instant(),this.ƀic?.close()??actionsLib.SingleEvent.instant()])).chain(this).tap(()=>this.destroy()).chainToRoot())}ƀke(t){this.ƀid=g.pause.toSequence().asyncMapDropOngoing(e=>e&&m.wait(Y).map(()=>e)).tap(e=>{if(e)this.ƀic=nt.createByName(t,{fade:1,volume:this.ƀmf}).attach(this),this.ƀic.fade(0);else if(this.ƀic){let i=this.ƀic;this.ƀic.fade(1).tap(()=>i.destroy()).attach(this),this.ƀic=void 0;}}).attach(this);}};var ci=class extends d{static{h(this,"Placeholder");}constructor(t){super(),this.ƀit=new N__namespace.Graphics,this.ƀit.beginFill(0,1e-9),this.ƀit.drawRect(0,0,t.x,t.y),this.ƀit.endFill(),this.ƀir.addChild(this.ƀit);}destroy(){this.destroyed||(super.destroy(),this.ƀit.destroy());}};var Gt=class{static{h(this,"TextStyleConverter");}static getPixiTextStyle(t){let e={color:helpersLib.ColorHelper.white,align:"center",fontFamily:"Arial",fontStyle:"normal",fontSize:18,lineHeight:void 0,wordWrapWidth:void 0,lineThrough:false,...t},i=t?.dropShadow===true?{}:t?.dropShadow,r={};if(i){let s={blur:4,angle:helpersLib.Radian.get60,distance:10,color:helpersLib.ColorHelper.black,alpha:.5,...i};r={dropShadow:true,dropShadowBlur:s.blur,dropShadowAngle:s.angle.value,dropShadowDistance:s.distance,dropShadowColor:helpersLib.ColorHelper.rgbToHex(s.color),dropShadowAlpha:s.alpha};}return helpersLib.JsonHelper.removeUndefinedProperties({fontFamily:e.fontFamily,fill:helpersLib.ColorHelper.rgbToHex(e.color),align:e.align,fontSize:e.fontSize,fontStyle:e.fontStyle,lineHeight:e.lineHeight,wordWrapWidth:e.wordWrapWidth,wordWrap:e.wordWrapWidth!==void 0,lineThrough:e.lineThrough,...r})}};var Me=class{static{h(this,"RichTextDataInConverter");}static process(t,e){let i=new Set(e.styles?Object.keys(e.styles):[]),r=scriptEngineLib.RichTextSeparator.process(t,i),s=this.ƀfu(r,e),n=this.ƀs(s);return this.ƀko(n)}static ƀfu(t,e){let i=new Map,r=new Map,s=h((a,l)=>{if(r.has(l))return r.get(l);let c=Gt.getPixiTextStyle(a);return r.set(l,c),c},"GetPixiStyle");return t.map(a=>{let{style:l,cacheKey:c}=this.ƀea(a.tags,e,i),p=s(l,c),y=N__namespace.TextMetrics.measureText(" ",new N__namespace.TextStyle(p),false);return {text:a.text,cacheKey:c,style:l,pixiStyle:p,spaceWidth:y.width}})}static ƀea(t,e,i){let r=t.join("+");if(i.has(r))return {style:i.get(r),cacheKey:r};let s=this.ƀbf(t,e);return i.set(r,s),{style:s,cacheKey:r}}static ƀbf(t,e){let i={...e.default};for(let l of t)e.styles&&e.styles[l]&&(i={...i,...e.styles[l]});let{wordWrapWidth:r,align:s,dropShadow:n,...a}=i;return a}static ƀs(t){let e=[],i=[];return t.forEach((r,s)=>{r.text.split(/\r?\n/).forEach((a,l)=>{l>0&&(e.push(i),i=[]),i.push({text:a,cacheKey:r.cacheKey,style:r.style,pixiStyle:r.pixiStyle,spaceWidth:r.spaceWidth});});}),e.push(i),e}static ƀko(t){let e=[];return t.forEach(i=>{if(i.length===0)throw new Error("Internal Error: Line is unexpectedly empty");let r=i.flatMap(s=>this.ƀkp(s.text).map(a=>{let l=new N__namespace.TextStyle(s.pixiStyle),c=N__namespace.TextMetrics.measureText(a,l,false);return {text:a,whitespace:a.trim()==="",style:{cacheKey:s.cacheKey,style:s.style,pixiStyle:l,height:c.height,ascent:c.fontProperties.ascent,descent:c.fontProperties.descent,width:c.width,spaceWidth:s.spaceWidth}}}));e.push(r);}),e}static ƀkp(t){if(t==="")return [""];let e=[],i="",r=t[0]===" ";for(let s=0;s<t.length;s++){let n=t[s],a=n===" ";a===r?i+=n:(e.push(i),i=n,r=a);}return i&&e.push(i),e}};var Be=class{static{h(this,"RichTextTypewriter");}get lineIsEmpty(){return this.ƀcm.length===0}get remainingWidth(){return this.ƀmh-this.ƀcp}constructor(t,e){this.ƀmh=t,this.ƀgm=[],this.ƀcm=[],this.ƀcp=0,this.ƀgl=new helpersLib.Vector(0,0),this.ƀcn=0;let i={rectangleCutOption:void 0,horizontalAlignment:"left",verticalAlignment:"bottom",...e};if(this.ƀfm=i.horizontalAlignment,this.ƀlz=i.verticalAlignment,i.rectangleCutOption){if(i.rectangleCutOption.position.x<0||i.rectangleCutOption.position.x>=this.ƀmh||i.rectangleCutOption.position.y<0)throw new Error("Rectangle cut position is out of bounds");this.ƀcq={direction:i.rectangleCutOption.direction,rectangle:this.ƀbs(i.rectangleCutOption)};}}isSpaceAvailable(t){let e=Math.max(this.ƀcn,t.y),i=this.ƀej(this.ƀgl.y,this.ƀgl.y+e);return this.ƀcp+t.x<=i}insertWord(t){let e=Math.max(this.ƀcn,t.style.height);if(this.ƀcm.length===0){let i=this.ƀek(this.ƀgl.y,this.ƀgl.y+e);this.ƀgl=new helpersLib.Vector(i,this.ƀgl.y),this.ƀcp=this.ƀgl.x;}this.ƀcm.push({chunk:t,position:new helpersLib.Vector(this.ƀcp,this.ƀgl.y)}),this.ƀcn=e,this.ƀcp+=t.style.width;}newLine(){let t=this.ƀgl.y+this.ƀcn,e=this.ƀek(t,t);this.ƀdn(),this.ƀgl=new helpersLib.Vector(e,t),this.ƀcp=this.ƀgl.x,this.ƀcn=0;}print(){return this.ƀdn(),this.ƀgm}ƀdn(){this.ƀcm.length>0&&(this.ƀgm.push(this.ƀg(this.ƀcm)),this.ƀcm=[]);}ƀg(t){return t=this.ƀmb(t),t=this.ƀfo(t),t}ƀfo(t){if(this.ƀfm==="left")return t;let e=this.ƀgl.y+this.ƀcn,i=this.ƀek(this.ƀgl.y,e),s=this.ƀej(this.ƀgl.y,e)-i,n=Math.min(s,t.reduce((l,c)=>l+c.chunk.style.width,0)),a;return this.ƀfm==="center"?a=(s-n)/2:a=s-n,t.map(l=>(l={chunk:l.chunk,position:new helpersLib.Vector(l.position.x+a,l.position.y)},l))}ƀmb(t){let e=Math.max(...t.map(r=>r.chunk.style.ascent)),i=Math.max(...t.map(r=>r.chunk.style.descent));return t.map(r=>{let s;switch(this.ƀlz){case "top":s=i-r.chunk.style.descent;break;case "center":s=(i-r.chunk.style.descent+e-r.chunk.style.ascent)*.5;break;case "bottom":s=e-r.chunk.style.ascent;break;default:{this.ƀlz;throw new Error}}return r={chunk:r.chunk,position:new helpersLib.Vector(r.position.x,r.position.y+s)},r})}ƀek(t,e){return this.ƀcq&&(this.ƀcq.direction==="topLeft"||this.ƀcq.direction==="bottomLeft")&&(this.ƀcq.rectangle.isPointInside(new helpersLib.Vector(0,t),{includeEdges:false})||this.ƀcq.rectangle.isPointInside(new helpersLib.Vector(0,e),{includeEdges:false}))?this.ƀcq.rectangle.bottomRight.x:0}ƀej(t,e){return this.ƀcq&&(this.ƀcq.direction==="topRight"||this.ƀcq.direction==="bottomRight")&&(this.ƀcq.rectangle.isPointInside(new helpersLib.Vector(this.ƀmh,t),{includeEdges:false})||this.ƀcq.rectangle.isPointInside(new helpersLib.Vector(this.ƀmh,e),{includeEdges:false}))?this.ƀcq.rectangle.topLeft.x:this.ƀmh}ƀbs(t){let e,i;switch(t.direction){case "topRight":e=new helpersLib.Vector(t.position.x,-1/0),i=new helpersLib.Vector(1/0,t.position.y);break;case "topLeft":e=new helpersLib.Vector(-1/0,-1/0),i=t.position;break;case "bottomRight":e=t.position,i=new helpersLib.Vector(1/0,1/0);break;case "bottomLeft":e=new helpersLib.Vector(-1/0,t.position.y),i=new helpersLib.Vector(t.position.x,1/0);break;default:{t.direction;throw new Error}}return new helpersLib.Rectangle(e,i)}};var Ge=class{static{h(this,"ConsistentSpaceTextWrapper");}static wrapText(t,e){return t.forEach(i=>{i.forEach((r,s)=>{if(e.isSpaceAvailable(new helpersLib.Vector(r.style.width,r.style.height)))if(r.whitespace&&s===i.length-2){let n=i[i.length-1];e.isSpaceAvailable(new helpersLib.Vector(n.style.width+r.style.width,n.style.height))?e.insertWord(r):this.ƀmi(r,e);}else e.insertWord(r);else e.lineIsEmpty?e.insertWord(r):r.whitespace?this.ƀmi(r,e):(e.newLine(),e.insertWord(r));}),e.newLine();}),e.print()}static ƀmi(t,e){let i=Math.max(0,Math.floor(e.remainingWidth/t.style.spaceWidth)),r=Math.max(0,Math.min(i,t.text.length-1));if(r>0){let n={text:" ".repeat(r),whitespace:true,style:{...t.style,width:r*t.style.spaceWidth}};e.insertWord(n);}e.newLine();let s=t.text.length-r-1;if(s>0){let n={text:" ".repeat(s),whitespace:true,style:{...t.style,width:s*t.style.spaceWidth}};e.insertWord(n);}}};var _e=class{static{h(this,"RichTextDataOutConverter");}static process(t){return t=this.ƀhc(t),t=this.ƀlp(t),this.ƀaw(t)}static ƀhc(t){return t.map(e=>{let i=[],r,s=true;return e.forEach(n=>{if(!r||r.chunk.style.cacheKey!==n.chunk.style.cacheKey)r&&i.push(r),r=n,s=n.chunk.whitespace;else {let a=r.chunk.text+n.chunk.text;s=n.chunk.whitespace&&s,r={chunk:{text:a,whitespace:s,style:{...r.chunk.style,width:r.chunk.style.width+n.chunk.style.width}},position:r.position};}}),r&&i.push(r),i})}static ƀlp(t){return t.map(e=>{if(e.length===0)return [];let i=e.pop();if(!i.chunk.whitespace||i.chunk.text===""){let r=i.chunk.text.length,s=i.chunk.text.trimEnd();r!==s.length?e.push({chunk:{text:s,whitespace:false,style:{...i.chunk.style,width:i.chunk.style.width-(r-s.length)*i.chunk.style.spaceWidth}},position:i.position}):e.push(i);}return e})}static ƀaw(t){return t.flatMap(e=>e.map(i=>({text:i.chunk.text,style:i.chunk.style.style,position:i.position}))).filter(e=>e.text.trim()!=="")}};var ie=class{static{h(this,"RichTextToPlaneText");}static process(t,e){if(e.default.wordWrapWidth===void 0){if(e.default.align==="right"||e.default.align==="center")throw new Error("wordWrapWidth is required for right or center alignment");if(e.rectangleCut&&(e.rectangleCut.direction==="topRight"||e.rectangleCut.direction==="bottomRight"))throw new Error("wordWrapWidth is required for topRight or bottomRight rectangle cut")}let i=Me.process(t,e),r=helpersLib.JsonHelper.removeUndefinedProperties({rectangleCutOption:e.rectangleCut,verticalAlignment:e.verticalAlignment,horizontalAlignment:e.default.align}),s=new Be(e.default.wordWrapWidth??1/0,r),n=Ge.wrapText(i,s);return _e.process(n)}};var qs=1,ir=1/qs,re=class extends d{static{h(this,"Text");}get ƀli(){if(!this.ƀlj){let t=new N__namespace.TextStyle(this.ƀiv);this.ƀlj=N__namespace.TextMetrics.measureText(this.ƀlh,t);}return this.ƀlj}get ascent(){return this.ƀli.fontProperties.ascent}constructor(t,e){super(),this.ƀiv=Gt.getPixiTextStyle(e),this.setText(t);}destroy(){this.destroyed||(super.destroy(),!this.ƀiu.destroyed&&this.ƀiu.destroy());}setAnchor(t){return this.anchor=t,this}get anchor(){return new helpersLib.Vector(this.ƀiu.anchor.x,this.ƀiu.anchor.y)}set anchor(t){this.ƀi=t,this.ƀiu.anchor.set(t.x,t.y);}setText(t){return this.ƀlh!==t&&(this.ƀlh=t,this.ƀjf()),this}setColor(t){let e=helpersLib.ColorHelper.rgbToHex(t);return this.ƀiv.fill!==e&&(this.ƀiv.fill=e,this.ƀjf()),this}ƀjf(){this.ƀiu?.destroy(),this.ƀlc?.destroy(),this.ƀlc=void 0,this.ƀlj=void 0;let t=new N__namespace.TextStyle(this.ƀiv);this.ƀiu=new N__namespace.Text(this.ƀlh,t),this.ƀji(),this.ƀi&&this.ƀiu.anchor.set(this.ƀi.x,this.ƀi.y),this.ƀiu.scale.set(ir,ir),this.ƀir.addChild(this.ƀiu),this.ƀiv.lineThrough&&(this.ƀlc=this.ƀe(this.ƀiu,this.ƀiv.fill),this.ƀir.addChild(this.ƀlc));}ƀji(){let t=N__namespace.TextMetrics.measureText(this.ƀlh,new N__namespace.TextStyle({...this.ƀiv,dropShadow:false,dropShadowAlpha:0,dropShadowBlur:0,dropShadowDistance:0}));this.ƀiu.calculateBounds=function(){this.updateText(true),this._bounds.clear();let e=-this.anchor.x*t.width,i=-this.anchor.y*t.height;this._bounds.addFrame(this.transform,e,i,e+t.width,i+t.height);};}ƀe(t,e){let i=N__namespace.TextMetrics.measureText(t.text,t.style),r=Math.max(1,Math.round(i.lineHeight*.07)),s=r%2*.5,n=new N__namespace.Graphics;n.lineStyle(r,e);let a=0;return i.lines.forEach((l,c)=>{let p=N__namespace.TextMetrics.measureText(l,t.style),y=Math.round(a+(p.fontProperties.ascent-p.fontProperties.descent)*.6+p.fontProperties.descent)+s,w=0;t.style.align==="center"?w=0+(t.width-p.width)*.5:t.style.align==="right"&&(w=0+t.width-p.width),w=Math.floor(w),n.moveTo(Math.floor(w),y),n.lineTo(Math.floor(w+p.width),y),a+=p.lineHeight;}),n.endFill(),n}};var pi=class extends d{static{h(this,"RichText");}constructor(t,e){super(),ie.process(t,e).forEach(r=>new re(r.text,r.style).setPosition(r.position).displayParent(this).attach(this));}};var ui=class extends d{static{h(this,"UpdatableContainer");}},di=class extends d{static{h(this,"DisplayObjectArray");}constructor(t,e){super(),this.ƀby=t,this.ƀcu=new Map,this.ƀhx={trackBy:h((i,r)=>r,"trackBy"),positioning:{direction:"vertical",spacing:0},...e};}set(t){let e=new Set(this.ƀcu.keys()),i=0;t.forEach((r,s)=>{let n=this.ƀhx.trackBy(r,s),a;this.ƀcu.has(n)?(a=this.ƀcu.get(n),e.delete(n),a.update(r)):(a=this.ƀby(r).displayParent(this).attach(this),this.ƀcu.set(n,a)),this.ƀhx.positioning.direction==="horizontal"?(a.x=i,i+=a.size.x+this.ƀhx.positioning.spacing):(a.y=i,i+=a.size.y+this.ƀhx.positioning.spacing);}),e.forEach(r=>{this.ƀcu.get(r).destroy(),this.ƀcu.delete(r);});}};var se=class o extends d{static{h(this,"MenuUI");}static{this.ƀga=actionsLib.Reducer.createExistenceChecker();}static{this.isAnyMenuTransitioning=this.ƀga.notifier;}constructor(t,e){super(),this.ƀhp=new actionsLib.SingleAction,this.onCreate=this.ƀhp.notifier,this.ƀhr=new actionsLib.SingleAction,this.onOpen=this.ƀhr.notifier,this.ƀhm=new actionsLib.SingleAction,this.onClose=this.ƀhm.notifier,this.ƀbb=false;let i={closeOnBackgroundClick:true,appearAnimationDuration:150,backgroundDarkeningRatio:.3,...e};this.setAlpha(0),this.ƀp=new I(this,"alpha",{animation:x.easeInOutCubic,duration:i.appearAnimationDuration,reAnimateHandling:exports.ReAnimateHandlingType.CompletePrevious,completionHandling:exports.AnimationsCompletionHandlingType.StayInCurrentState});let r=T.createRectangle(new helpersLib.Vector(1,1),helpersLib.ColorHelper.black).toSprite({cache:true}).setAlpha(i.backgroundDarkeningRatio).setInteractive(true).displayParent(this).attach(this);this.ƀha=k.createByName(t).setPosition(new helpersLib.Vector(0,0)).setInteractive(true).displayParent(this).attach(this),g.instance.screenSize.subscribe(n=>{r.aspectRatio=n.x/n.y,r.scale=Math.max(n.x,n.y),r.setPosition(helpersLib.Vector.zero,{holdFrom:helpersLib.Vector.half}),this.setPosition(n.multiplyNumber(.5));}).attach(this),this.ƀhp.resolve();let s=o.ƀga.effect().attach(this);this.ƀp.animate({alpha:1}).chain(this).tap(()=>{this.ƀhr.resolve(),s.destroy(),i.closeOnBackgroundClick&&r.on(exports.ContainerEventType.Click).take(1).tap(()=>this.close()).attach(this);}).attachToRoot();}getBoundingMask(){return this.ƀha.getBoundingMask()}close(){if(!this.ƀbb){this.ƀbb=true;let t=o.ƀga.effect().attach(this);this.ƀp.animate({alpha:0}).chain(this).map(()=>{this.ƀhm.resolve(),t.destroy(),this.destroy();}).chainToRoot();}return this.onClose.toSingleEvent()}};var mi=class extends gt{static{h(this,"MenuEntity");}static subscribeIsOpen(){return actionsLib.ActionLib.merge(this.continuesSubscription().map(t=>t.type==="open"),actionsLib.SingleEvent.instant(this.getInstance()!==void 0))}constructor(t){super(),this.ƀhx=t,queueMicrotask(()=>{if(!this.ƀhb)throw new Error("MenuEntity: MenuEntity has to have a MenuView.")});}ƀjh(t){this.ƀhb=t,this.ƀhb.onClose.subscribe(()=>this.destroy()).attach(this);}onCreate(){return this.ƀhb.onCreate.toSingleEvent()}onOpen(){return this.ƀhb.onOpen.toSingleEvent()}onClose(){return this.ƀhb.onClose.toSingleEvent()}close(){return this.ƀhb.close()}};var yi=class extends mt{static{h(this,"MenuView");}constructor(t,e,i){super();let r=helpersLib.JsonHelper.removeUndefinedProperties({appearAnimationDuration:i.appearAnimationDuration,backgroundDarkeningRatio:i.backgroundDarkeningRatio,closeOnBackgroundClick:t.ƀhx.closeOnBackgroundClick}),s=new se(e,r).displayParent(g.camera.layers.foregroundScreen).attach(this);t.ƀjh(s);let n=new actionsLib.SingleAction;s.onCreate.subscribe(()=>n.resolve(s)).attach(this),this.onCreate=n.notifier,this.onOpen=s.onOpen.notifier,this.onClose=s.onClose.notifier;}};var no=.65,ao=.01,Ve=class{static{h(this,"SmoothScroller");}get scrollHeight(){return this.ƀjr}get contentSize(){return this.ƀbm.size.ceil()}constructor(t,e,i,r){this.ƀbm=t,this.ƀv=e,this.ƀia=i,this.ƀki=r,this.ƀfx=false,this.ƀjr=e-i*2,this.ƀbm.y=i,this.ƀld=i;}onWheel(t){this.setTarget(this.ƀld-t*no);}scrollToTop(){this.setTarget(1/0);}scrollToBottom(){this.setTarget(-1/0);}setTarget(t){this.ƀld=helpersLib.NumberHelper.clamp(t,this.ƀv-this.ƀia-this.contentSize.y,this.ƀia);}jumpToTarget(){this.ƀbm.y=this.ƀld;}update(t){let e=this.contentSize;if(e.y<=this.ƀjr){switch(this.ƀki){case "start":this.ƀld=this.ƀia;break;case "center":this.ƀld=(this.ƀv-e.y)*.5;break;case "end":this.ƀld=this.ƀv-e.y-this.ƀia;break;default:{this.ƀki;throw new Error}}this.ƀfx||(this.ƀbm.y=this.ƀld);}this.ƀfx=true;let i=this.ƀld-this.ƀbm.y;this.ƀbm.y=this.ƀbm.y+i*ao*t;}};var lo=15,gi=class extends d{static{h(this,"ScrollAreaUI");}get contentAreaSize(){return this.ƀbn}get contentSize(){return this.ƀjs.contentSize}constructor(t,e={}){super();let i={padding:lo,smallContentAlign:"start",...e};if(i.padding<0)throw new Error("The padding of the scroll mask cannot be lower than '0'");if(i.padding>t.y*.5)throw new Error("The padding of the scroll mask cannot be higher than half of the size of the area");let r=new d().displayParent(this).attach(this);new xt(r,t,i.padding).attach(this);let s=new N__namespace.Graphics;s.beginFill(0,1e-9),s.drawRect(0,0,t.x,t.y),s.endFill(),r.ƀir.addChild(s);let n=new d().displayParent(r).attach(this);this.ƀjs=new Ve(n,t.y,i.padding,i.smallContentAlign),this.ƀbn=new helpersLib.Vector(t.x,this.ƀjs.scrollHeight),s.eventMode="dynamic",s.addEventListener("wheel",a=>{this.ƀjs.onWheel(a.deltaY);}),n.setInteractive(true),n.ƀir.addEventListener("wheel",a=>{this.ƀjs.onWheel(a.deltaY);}),m.afterSceneUpdateAction.subscribe(a=>this.ƀjs.update(a.delta)).attach(this),this.addChildTo=n;}scrollToTop(t){this.ƀjs.scrollToTop(),t?.instant&&this.ƀjs.jumpToTarget();}scrollToBottom(t){this.ƀjs.scrollToBottom(),t?.instant&&this.ƀjs.jumpToTarget();}};var co=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},F=class extends gt{static{h(this,"CameraEntity");}constructor(){super(...arguments),this.position=new actionsLib.Variable(helpersLib.Vector.zero),this.offset=new actionsLib.Variable(helpersLib.Vector.zero),this.targetPosition=new actionsLib.Variable(void 0),this.focusingNewTargetInfo=new actionsLib.Variable(void 0);}};F=co([yt()],F);var po=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},uo=1500,Le=class{static{h(this,"CameraService");}createCamera(){return new F().attachToRoot()}getCameraPosition(){let t=F.getInstanceOrFail();return helpersLib.Vector.fromTo(t.offset.value,t.position.value)}setPosition(t){let e=F.getInstanceOrFail();e.targetPosition.value=t;}setTransition(t){let e=F.getInstanceOrFail();e.focusingNewTargetInfo.value={time:g.time,duration:t?.duration??uo,position:e.position.value,roundPosition:t?.roundPosition??false,roundPositionThreshold:t?.roundPositionThreshold??0,focusingAnimation:t?.animation??exports.FocusingAnimation.Instant};}update(t,e){let i=F.getInstanceOrFail(),r=i.targetPosition.value;r&&(i.focusingNewTargetInfo.value?this.ƀgf(i,r,t):i.position.value=r);}ƀgf(t,e,i){let r=t.focusingNewTargetInfo.value;if(r.focusingAnimation===exports.FocusingAnimation.Instant)this.ƀbg(t,e);else {let s=(i-r.time)/r.duration;if(s>=1)this.ƀbg(t,e);else {let n;r.focusingAnimation===exports.FocusingAnimation.EaseInOut?n=V.easeInOut(s):r.focusingAnimation===exports.FocusingAnimation.EaseOut?n=V.easeOut(s):n=1;let a=r.position.lerp(e,n);r.roundPosition&&(Math.abs(a.x-r.position.x)>=r.roundPositionThreshold&&(a=new helpersLib.Vector(Math.round(a.x),a.y)),Math.abs(a.y-r.position.y)>=r.roundPositionThreshold&&(a=new helpersLib.Vector(a.x,Math.round(a.y)))),t.position.value=a;}}}ƀbg(t,e){t.position.value=e,t.focusingNewTargetInfo.value=void 0;}};Le=po([u()],Le);var fo=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},mo=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},xi=class{static{h(this,"CameraController");}constructor(t){this.ƀas=t;}createCamera(){return this.ƀas.createCamera().id}update(t,e){this.ƀas.update(t,e);}setPosition(t){this.ƀas.setPosition(t);}setTransition(t){this.ƀas.setTransition(t);}getCameraPosition(){return this.ƀas.getCameraPosition()}};xi=fo([Q(exports.CameraGateway),mo("design:paramtypes",[Le])],xi);var He=class{static{h(this,"PositionConversionHelper");}static includeScaleInScreenPosition(t,e,i){if(e!==1){let r=helpersLib.Vector.fromTo(i,t).multiplyNumber(1/e);return i.add(r)}else return t}};var go=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},wo=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},Et=class extends mt{static{h(this,"CameraView");}constructor(t){super(),this.ƀdd=t,this.ƀkr=(()=>{let e=new d().attach(this);return e.ƀir=g.instance.ƀiq.stage,e})(),this.ƀjm=new d().setAlpha(0).displayParent(this.ƀkr).attach(this),this.ƀae=T.createRectangle(new helpersLib.Vector(1,1),helpersLib.ColorHelper.black).toSprite({cache:true}).setAlpha(0).displayParent(this.ƀkr).attach(this),this.ƀac=new d().displayParent(this.ƀjm).attach(this),this.ƀar=new d().displayParent(this.ƀjm).attach(this),this.ƀdq=new d().setSortableChildren(true).displayParent(this.ƀjm).attach(this),this.ƀaq=new d().setSortableChildren(true).displayParent(this.ƀar).attach(this),this.ƀdp=new d().setSortableChildren(true).setZIndex(20).displayParent(this.ƀaq).attach(this),this.ƀgs=new d().setSortableChildren(true).setZIndex(10).displayParent(this.ƀaq).attach(this),this.ƀab=new d().setZIndex(0).displayParent(this.ƀaq).attach(this),this.ƀh=new I(this.ƀjm,"alpha",{duration:500,animation:x.easeInOutCubic,reAnimateHandling:exports.ReAnimateHandlingType.CompletePrevious,completionHandling:exports.AnimationsCompletionHandlingType.StayInCurrentState}),this.ƀaf=new I(this.ƀae,"alpha",{duration:500,animation:x.easeInOutCubic,reAnimateHandling:exports.ReAnimateHandlingType.CompletePrevious,completionHandling:exports.AnimationsCompletionHandlingType.StayInCurrentState}),g.instance.screenSize.subscribe(e=>{this.ƀae.aspectRatio=e.x/e.y,this.ƀae.scale=Math.max(e.x,e.y),this.ƀae.setPosition(helpersLib.Vector.zero,{holdFrom:helpersLib.Vector.zero});}).attach(this),this.ƀdd.position.subscribe(e=>{this.ƀaq.position=this.ƀbt(e);}).attach(this),this.ƀdd.offset.subscribe(e=>{this.ƀar.position=e;}).attach(this),this.ƀaf.set({alpha:0}),this.ƀh.set({alpha:0});}screenPositonToStagePosition(t){let e=He.includeScaleInScreenPosition(t,this.ƀkr.scale,g.instance.screenSizeCenter.value);return new helpersLib.Vector(e.x-this.ƀaq.position.x-this.ƀar.position.x,e.y-this.ƀaq.position.y-this.ƀar.position.y)}getLayers(){return {backgroundScreen:this.ƀac.id,background:this.ƀab.id,main:this.ƀgs.id,foreground:this.ƀdp.id,foregroundScreen:this.ƀdq.id}}appear(t,e,i){switch(e){case "alpha":return this.ƀaf.set({alpha:0}),this.ƀh.set({alpha:t?0:1}),actionsLib.SingleEvent.instant().asyncTap(()=>i>0&&m.wait(i)).asyncTap(()=>this.ƀh.animate({alpha:t?1:0})).chain(this);case "pureBlack":return this.ƀh.set({alpha:1}),this.ƀaf.set({alpha:t?1:0}),actionsLib.SingleEvent.instant().asyncTap(()=>i>0&&m.wait(i)).asyncTap(()=>this.ƀaf.animate({alpha:t?0:1})).chain(this);case "instant":return this.ƀh.set({alpha:t?1:0}),this.ƀaf.set({alpha:t?0:1}),actionsLib.SingleEvent.instant();default:{throw new Error}}}ƀbt(t){return helpersLib.Vector.fromTo(t,g.instance.screenSizeCenter.value)}};Et=go([Qe({entity:F}),wo("design:paramtypes",[F])],Et);var vo=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},bi=class{static{h(this,"CameraViewController");}getLayers(){let t=F.getInstanceOrFail().id;return Et.getInstanceOrFail(t).getLayers()}appear(t,e,i){let r=F.getInstanceOrFail().id;return Et.getInstanceOrFail(r).appear(t,e,i)}screenPositonToStagePosition(t){let e=F.getInstanceOrFail().id;return Et.getInstanceOrFail(e).screenPositonToStagePosition(t)}};bi=vo([Q(Pt)],bi);var bo=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},So=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)};exports.KeyboardService=class Si{static{h(this,"KeyboardService");}constructor(){this.ƀgh=new actionsLib.Action,this.keyPressed=this.ƀgh.notifier,this.ƀgi=new actionsLib.Action,this.keyReleased=this.ƀgi.notifier,this.ƀgo=new Set,this.ƀgn=new Set,window.addEventListener("keydown",t=>{this.ƀgo.add(t.code),this.ƀgn.add(t.code),!t.repeat&&this.ƀgh.trigger({key:t.key,code:t.code});}),window.addEventListener("keyup",t=>{this.ƀgo.delete(t.code),this.ƀgi.trigger({key:t.key,code:t.code});}),window.addEventListener("blur",()=>{this.ƀgo.clear();}),m.afterSceneUpdateAction.subscribe(()=>this.ƀgn.clear()).attachToRoot();}isKeyDown(t,e){return (e?.onlyPressedThisFrame?this.ƀgn:this.ƀgo).has(t)}};exports.KeyboardService=bo([u(),So("design:paramtypes",[])],exports.KeyboardService);var Po=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},Eo=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)};exports.MouseService=class ae{static{h(this,"MouseService");}constructor(){this.ƀfw=new actionsLib.Variable(false),this.initialMouseMovementHappened=this.ƀfw.notifier,this.ƀks=new actionsLib.Variable(helpersLib.Vector.zero,{notifyOnChange:true}),this.stagePosition=this.ƀks.notifier,this.ƀjo=new actionsLib.Variable(helpersLib.Vector.zero,{notifyOnChange:true}),this.screenPosition=this.ƀjo.notifier,this.ƀgr=new actionsLib.Variable(false),this.mainButtonState=this.ƀgr.notifier,this.ƀjt=new actionsLib.Variable(false),this.secondaryButtonState=this.ƀjt.notifier,this.ƀku(),window.addEventListener("pointerdown",t=>{t.button===0?this.ƀgr.value=true:t.button===2&&(this.ƀjt.value=true);},{capture:true}),window.addEventListener("pointerup",t=>{t.button===0?this.ƀgr.value=false:t.button===2&&(this.ƀjt.value=false);},{capture:true}),window.addEventListener("blur",()=>{this.ƀgr.value=false,this.ƀjt.value=false;},{capture:true});}ƀku(){let t=helpersLib.Vector.zero;window.addEventListener("pointermove",e=>{t=new helpersLib.Vector(e.clientX,e.clientY),this.ƀfw.value=true;},{capture:true}),m.beforeSceneUpdateAction.subscribe(()=>{this.ƀjo.value=this.ƀaz(t);}).attachToRoot(),m.afterSceneUpdateAction.subscribe(()=>{let e=g.camera.screenPositonToStagePosition(this.ƀjo.value);e.isEqual(this.ƀks.value)?g.instance.renderer.events.onPointerMove(new PointerEvent("pointermove",{clientX:t.x,clientY:t.y,pointerType:"mouse"})):this.ƀks.value=e;}).attachToRoot();}ƀaz(t){let i=g.instance.renderer.view.getBoundingClientRect(),r=i.width,s=i.height;if(r<=0||s<=0)return helpersLib.Vector.zero;let n=g.instance.renderer,a=(t.x-i.left)/r*n.screen.width,l=(t.y-i.top)/s*n.screen.height;return a=helpersLib.NumberHelper.clamp(a,0,n.screen.width),l=helpersLib.NumberHelper.clamp(l,0,n.screen.height),new helpersLib.Vector(a,l)}};exports.MouseService=Po([u(),Eo("design:paramtypes",[])],exports.MouseService);var To=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},Ro=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)};exports.MouseTargetFocusService=class Pi{static{h(this,"MouseTargetFocusService");}get focusedInLastFrame(){return this.ƀdo}get lastFocusedPosition(){return this.ƀgk}constructor(t){this.ƀhe=t,this.ƀht=new actionsLib.Action,this.onTargetFocus=this.ƀht.notifier,this.ƀln=0,this.ƀlo=false,this.ƀdo=false,this.ƀgk=void 0,m.beforeSceneUpdateAction.subscribe(e=>this.ƀlr(e.delta)).attachToRoot();}ƀlr(t){if(this.ƀhf){let e=this.ƀeq(this.ƀhe.stagePosition.value,this.ƀhf);this.ƀif===void 0?this.ƀif=e:this.ƀav(e,t);}this.ƀhf=this.ƀhe.stagePosition.value;}ƀav(t,e){this.ƀif-t>10?(this.ƀln=Math.max(250,this.ƀln),this.ƀlo=true):this.ƀln>1e3&&(this.ƀlo=true);let i=this.ƀln>=300&&this.ƀlo;this.ƀgg(i,t,e);}ƀgg(t,e,i){(t||e>this.ƀif)&&(this.ƀif=e),t?(this.ƀlo=false,this.ƀln=0,this.ƀdo=true,this.ƀgk=this.ƀhe.stagePosition.value,this.ƀht.trigger(this.ƀgk)):(this.ƀln+=i,this.ƀdo=false);}ƀeq(t,e){let i=helpersLib.Vector.fromTo(t,e);return Math.abs(i.x)+Math.abs(i.y)}};exports.MouseTargetFocusService=To([u(),Ro("design:paramtypes",[exports.MouseService])],exports.MouseTargetFocusService);var Ei=10.8,Ti=10.01;exports.PhysicsShapeType=void 0;(function(o){o[o.Point=1]="Point",o[o.Circle=2]="Circle",o[o.Polygon=3]="Polygon",o[o.Rectangle=4]="Rectangle";})(exports.PhysicsShapeType||(exports.PhysicsShapeType={}));var f=class o{static{h(this,"P2JSHelper");}static aabbToBoundingBox(t){return helpersLib.Rectangle.fromRect({topLeft:{x:t.lowerBound[0],y:t.lowerBound[1]},bottomRight:{x:t.upperBound[0],y:t.upperBound[1]}})}static arrayToVector(t){return new helpersLib.Vector(t[0],t[1])}static vectorToArray(t){return [t.x,t.y]}static arePhysicsGroupsCollidable(t,e,i,r){return (t&r)!==0&&(i&e)!==0}static canCollideWith(t,e){return t.shapes.some(i=>e.shapes.some(r=>o.arePhysicsGroupsCollidable(i.collisionGroup,i.collisionMask,r.collisionGroup,r.collisionMask)))}static cloneP2Body(t){let e=new U__default.default.Body({position:t.position,angle:t.angle,type:t.type});return e.shapes=t.shapes,e}};var at="border";var Mo=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s};exports.PhysicsGateway=class he extends q(){static{h(this,"PhysicsGateway");}};exports.PhysicsGateway=Mo([u()],exports.PhysicsGateway);var Bo=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},ht=class extends q(){static{h(this,"PhysicsInternalGateway");}};ht=Bo([u()],ht);var b=class o extends W{static{h(this,"PhysicsEntity");}static{this.ƀhz=new Map;}static{this.ƀij=new Map;}static getFromP2BodyID(t){return o.ƀhz.get(t)}static getFromP2BodyIDOrFail(t){let e=o.ƀhz.get(t);if(!e)throw new Error(`PhysicsEntity with p2BodyID ${t} not found`);return e}static getPhysicsInstanceOrFail(t){let e=o.ƀij.get(t);if(!e)throw new Error(`PhysicsEntity with id ${t} not found`);return e}static getPhysicsEntities(){return Array.from(o.ƀij.values())}get area(){return this.ƀu}get mass(){return this.ƀgv}get collisions(){return this.ƀbc}constructor(t,e,i){super(),this.ƀhn=new actionsLib.Action,this.onCollision=this.ƀhn.notifier,this.type="dynamic",this.ƀu=0,this.ƀgv=0,this.ƀbc=[],this.physicsWorldID=t,this.ƀil=S.get(ht);let r=this.ƀil.getMaterial(this.physicsWorldID,e.shapeDefinition.materialName),s=this.ƀil.getMaterialDefinition(this.physicsWorldID,e.shapeDefinition.materialName);if(this.type=i,this.physicsBodyGroup=e.shapeDefinition.group,this.includeInPathfinding=e.includeOnPathfinding,this.ƀik=this.ƀil.getGroupConstant(this.physicsWorldID,this.physicsBodyGroup),this.ƀim=this.ƀil.getMaskConstant(this.physicsWorldID,this.physicsBodyGroup),this.p2Body=this.ƀil.createBody(this.physicsWorldID,e,r,s,this.type),this.ƀu=this.p2Body.getArea(),this.ƀgv=this.p2Body.mass,this.p2Body.position=f.vectorToArray(e.position),this.p2Body.angle=e.rotation.value,!this.ƀil.addBody(this.physicsWorldID,this.p2Body,e.addInEmptySpace,e.shapeDefinition.group,e.includeOnPathfinding))throw new Error("PhysicsEntity was not able to be added to the world!");o.ƀhz.set(this.p2Body.id,this),o.ƀij.set(this.id,this);}destroy(){this.destroyed||(super.destroy(),this.ƀil.removeBody(this.physicsWorldID,this.p2Body),o.ƀhz.delete(this.p2Body.id),o.ƀij.delete(this.id));}canCollideWith(t){return f.arePhysicsGroupsCollidable(this.ƀik,this.ƀim,t.ƀik,t.ƀim)}ƀjv(t){this.ƀbc=t,t.length>0&&this.ƀhn.trigger(t);}};var le=class extends b{static{h(this,"ImmovablePhysicsEntity");}constructor(t,e){super(t,e,"static"),this.position=f.arrayToVector(this.p2Body.position),this.rotation=new helpersLib.Radian(this.p2Body.angle);}convertToDTO(){return {entityID:this.id,classID:this.classID,position:this.position,rotation:this.rotation,velocity:helpersLib.Vector.zero,rotationalSpeed:0}}};var Ri=class extends W{static{h(this,"MovableEntity");}constructor(){super(),this.position=new actionsLib.Variable(helpersLib.Vector.zero),this.rotation=new actionsLib.Variable(helpersLib.Radian.get0),this.velocity=new actionsLib.Variable(helpersLib.Vector.zero),this.rotationalSpeed=new actionsLib.Variable(0),m.beforeSceneUpdateAction.subscribe(({time:t,delta:e})=>{this.ƀkz(t,e);}).attach(this);}ƀkz(t,e){this.position.value=this.position.value.add(this.velocity.value.multiplyNumber(e)),this.rotation.value=new helpersLib.Radian(this.rotation.value.value+this.rotationalSpeed.value*e);}};var Ii=class extends b{static{h(this,"MovablePhysicsEntity");}constructor(t,e){super(t,e,"dynamic"),this.position=new actionsLib.Variable(helpersLib.Vector.zero),this.rotation=new actionsLib.Variable(helpersLib.Radian.get0),this.velocity=new actionsLib.Variable(helpersLib.Vector.zero),this.rotationalSpeed=new actionsLib.Variable(0),this.ƀfp=false,this.ƀfq=false,this.ƀfs=false,this.ƀfr=false,this.ƀig(),this.ƀgp(),S.get(ht).subscribeToPhysicsStep(t,({time:i,delta:r})=>this.ƀkz(i,r)).attach(this);}convertToDTO(){return {entityID:this.id,classID:this.classID,position:this.position.value,rotation:this.rotation.value,velocity:this.velocity.value,rotationalSpeed:this.rotationalSpeed.value}}ƀkz(t,e){this.ƀfp=true,this.ƀfq=true,this.ƀfs=true,this.ƀfr=true,this.ƀig();}ƀig(){this.position.value=f.arrayToVector(this.p2Body.position),this.rotation.value=new helpersLib.Radian(this.p2Body.angle),this.velocity.value=f.arrayToVector(this.p2Body.velocity),this.rotationalSpeed.value=this.p2Body.angularVelocity;}ƀgp(){this.position.subscribe(t=>{this.ƀfp?this.ƀfp=false:this.p2Body.position=[t.x,t.y];}).attach(this),this.rotation.subscribe(t=>{this.ƀfq?this.ƀfq=false:this.p2Body.angle=t.value;}).attach(this),this.velocity.subscribe(t=>{this.ƀfs?this.ƀfs=false:this.p2Body.velocity=[t.x,t.y];}).attach(this),this.rotationalSpeed.subscribe(t=>{this.ƀfr?this.ƀfr=false:this.p2Body.angularVelocity=t;}).attach(this);}};var Vo=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},No=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},v=class extends W{static{h(this,"PhysicsWorldEntity");}constructor(t,e,i,r,s,n,a){super(),this.materialDefinitions=new Map,this.physicsBodyGroupToP2Group=new Map,this.physicsBodyGroupToP2Mask=new Map,this.availabilityGridCache=new Map,this.vectorFieldCache=new Map,this.bodiesInContactWith=new Map,this.collisionReports=new Map,this.paused=new actionsLib.Variable(false),this.lastP2Time=new actionsLib.Variable(0),this.onPhysicsStep=new actionsLib.Action,this.mapSize=t,this.mapSizeCenter=this.mapSize.multiplyNumber(.5),this.modifyUpdateCycle=e,this.p2World=i,this.materials=r,this.materialDefinitions=s,this.physicsBodyGroupToP2Group=n,this.physicsBodyGroupToP2Mask=a;}};v=Vo([yt(),No("design:paramtypes",[helpersLib.Vector,Boolean,U__default.default.World,Map,Map,Map,Map])],v);var Uo=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},X=class{static{h(this,"PhysicsBodyGroupService");}createBodyGroupsAndMasks(t,e){let i=new Map,r=new Map;return t.map((s,n)=>{if(n>31)return console.error("Cannot have more than 32 physics body groups"),{};i.set(s,1<<n),r.set(s,0);}),e.map(([s,n])=>{if(!i.has(s))throw new Error(`Physics body group "${s}" not found`);if(!i.has(n))throw new Error(`Physics body group "${n}" not found`);let a=r.get(s),l=r.get(n),c=i.get(s),p=i.get(n);r.set(s,a|p),r.set(n,l|c);}),{physicsBodyGroupToP2Group:i,physicsBodyGroupToP2Mask:r}}getGroupConstant(t,e){return v.getInstanceByIDOrFail(t).physicsBodyGroupToP2Group.get(e)}getMaskConstant(t,e){return v.getInstanceByIDOrFail(t).physicsBodyGroupToP2Mask.get(e)}canCollide(t,e,i){let r=t.physicsBodyGroupToP2Group.get(e),s=t.physicsBodyGroupToP2Mask.get(e),n=t.physicsBodyGroupToP2Group.get(i),a=t.physicsBodyGroupToP2Mask.get(i);return (s&n)!==0&&(a&r)!==0}};X=Uo([u()],X);var Wo=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},$o=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},We=class{static{h(this,"AvailabilityGridCacheService");}constructor(t){this.ƀii=t;}getCollidableGrids(t,e){let i=[];return t.availabilityGridCache.forEach((r,s)=>{r.forEach((n,a)=>{this.ƀii.canCollide(t,a,e)&&i.push({grid:n,cellSize:s});});}),i}get(t,e,i){return t.availabilityGridCache.get(e)?.get(i)}set(t,e,i,r){let s=t.availabilityGridCache.get(e);s||(s=new Map,t.availabilityGridCache.set(e,s)),s.set(i,r);}clear(t){t.availabilityGridCache.clear();}};We=Wo([u(),$o("design:paramtypes",[X])],We);var zo=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},ko=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},lt=class{static{h(this,"AvailabilityGridService");}constructor(t,e){this.ƀii=t,this.ƀz=e;}onBodyAdded(t,e,i){e.aabbNeedsUpdate=true,e.updateAABB();let r=f.aabbToBoundingBox(e.aabb);this.ƀz.getCollidableGrids(t,i).forEach(s=>{let n=G.areaToGridArea(r,s.cellSize);s.grid.setArea(n,false);});}findClosestAvailableSpace(t,e,i,r=50){return e.aabbNeedsUpdate=true,e.updateAABB(),Xt.findByConvertingGridSpace(this.getAvilabilityGrid(t,r,i),f.aabbToBoundingBox(e.aabb),r)}getAvilabilityGrid(t,e,i){let r=this.ƀz.get(t,e,i);return r||(r=this.ƀcb(t,e,i),this.ƀz.set(t,e,i,r)),r}ƀcb(t,e,i){let r=new helpersLib.Grid({size:new helpersLib.Vector(Math.floor(t.mapSize.x/e),Math.floor(t.mapSize.y/e)),defaultValue:true});return t.p2World.bodies.forEach(s=>{let n=b.getFromP2BodyIDOrFail(s.id);if(n.includeInPathfinding&&this.ƀii.canCollide(t,n.physicsBodyGroup,i)){let a=this.ƀeh(s,e);r.setArea(a,false);}}),r}ƀeh(t,e){let i=f.aabbToBoundingBox(t.aabb);return G.areaToGridArea(i,e)}};lt=zo([u(),ko("design:paramtypes",[X,We])],lt);var Xo=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},Ko=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},Nt=class{static{h(this,"PathFinderService");}constructor(t){this.ƀih=t;}findPathAStar(t,e,i,r,s){s||(s={}),s.neighborType===void 0&&(s.neighborType=helpersLib.GridNeighborType.Ortogonal),s.gridCellSize===void 0&&(s.gridCellSize=50);let n=v.getInstanceByIDOrFail(t),a,l;helpersLib.Comparator.isNumber(i)?(l=b.getPhysicsInstanceOrFail(i).p2Body,a=f.arrayToVector(l.position)):a=i;let c=G.positionToGridPosition(e,s.gridCellSize),p=G.positionToGridPosition(a,s.gridCellSize),y=this.ƀih.getAvilabilityGrid(n,s.gridCellSize,r);if(l){let A=f.aabbToBoundingBox(l.aabb),Tt=G.areaToGridArea(A,s.gridCellSize);y.setArea(Tt,true);}let w=Kt.findPath(y,c,p,s.neighborType);return w.path=w.path.map(A=>G.gridPositionToPosition(A,s.gridCellSize)),w}findPathDirection(t,e,i,r,s=50){let n=v.getInstanceByIDOrFail(t),a;if(helpersLib.Comparator.isNumber(i)){let w=b.getPhysicsInstanceOrFail(i);a=f.aabbToBoundingBox(w.p2Body.aabb);}else a=new helpersLib.Rectangle(i,i);let l=G.areaToGridArea(a,s),c=JSON.stringify({targetGridArea:l,collidableWithGroup:r}),p=n.vectorFieldCache.get(c);if(!p){let w=this.ƀih.getAvilabilityGrid(n,s,r);p=new Zt(l,w),n.vectorFieldCache.set(c,p);}let y=G.positionToGridPosition(e,s);return p.getDirectionToTarget(y)}};Nt=Xo([u(),Ko("design:paramtypes",[lt])],Nt);var Qo=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},tn=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},Z=class{static{h(this,"TestVisualsService");}constructor(t,e){this.ƀaa=t,this.ƀib=e;}printPathfindingTestGrid(t,e,i,r,s,n){let a=v.getInstanceByIDOrFail(t);this.ƀaa.getAvilabilityGrid(a,n,r).map((c,p)=>({position:G.gridPositionToPosition(p,n),availability:c})).forEach(c=>{if(c.position.isInsideRectangle(s)){let p=this.ƀib.findPathDirection(t,c.position,i,r),y;p===void 0?y=T.createRectangleBorders(new helpersLib.Vector(8,8),2,helpersLib.ColorHelper.red).toSprite().displayParent(e).setPosition(c.position,{round:false}).attach(a):y=T.createArrow(25,c.availability?helpersLib.ColorHelper.green:helpersLib.ColorHelper.red).toSprite().displayParent(e).setPosition(c.position,{round:false}).setRotation(p).attach(a),new I(y,"alpha",{duration:1e3,animation:x.easeIn}).animate({alpha:0}).tap(()=>y.destroy()).attach(y);}});}createExplosionDebugVisual(t,e,i,r,s,n=300){let a=new d().displayParent(e).setAlpha(.5).attach(t);T.createCircle(s,helpersLib.ColorHelper.blue).toSprite().displayParent(a).setPosition(r,{round:false}).setAlpha(.5).attach(t),i.forEach(c=>{let p=c.hits.length>0?helpersLib.ColorHelper.red:helpersLib.ColorHelper.white;T.createVector(r,c.line.to,p).toSprite().displayParent(a).attach(t);}),new I(a,"alpha",{duration:n,animation:x.easeIn}).animate({alpha:0}).tap(()=>a.destroy()).attach(a);}createElipticExplosionDebugVisual(t,e,i,r,s,n,a=300){let l=new d().displayParent(e).setAlpha(.5).attach(t);T.createElipse(n,helpersLib.ColorHelper.blue).toSprite().displayParent(l).setPosition(r,{round:false}).setRotation(s).setAlpha(.5).attach(t),i.forEach(p=>{let y=p.hits.length>0?helpersLib.ColorHelper.red:helpersLib.ColorHelper.white;T.createVector(p.line.from,p.line.to,y).toSprite().displayParent(l).attach(t);}),new I(l,"alpha",{duration:a,animation:x.easeIn}).animate({alpha:0}).tap(()=>l.destroy()).attach(l);}createPhysicsEntityShapeVisual(t,e,i){let r=i?.overridePosition??f.arrayToVector(t.position),s=i?.overrideRotation??new helpersLib.Radian(t.angle),n=i?.color??helpersLib.ColorHelper.blue,a=new d().displayParent(e).setPosition(r,{round:false}).setRotation(s).setAlpha(.5).attachToRoot();t.shapes.forEach(c=>{this.ƀcw(c,n).displayParent(a).attachToRoot();}),new I(a,"alpha",{duration:1e3,animation:x.easeIn}).animate({alpha:0}).tap(()=>a.destroy()).attach(a);}ƀcw(t,e){switch(t.type){case U__default.default.Shape.PARTICLE:throw new Error("Not implemented");case U__default.default.Shape.LINE:throw new Error("Not implemented");case U__default.default.Shape.PLANE:throw new Error("Not implemented");case U__default.default.Shape.CIRCLE:throw new Error("Not implemented");case U__default.default.Shape.CAPSULE:throw new Error("Not implemented");case U__default.default.Shape.BOX:throw new Error("Not implemented");case U__default.default.Shape.HEIGHTFIELD:throw new Error("Not implemented");case U__default.default.Shape.CONVEX:return this.ƀcv(t,e);default:{t.type;throw new Error}}}ƀcv(t,e){let i=[t.vertices.map(r=>({x:r[0],y:r[1]}))];return T.createPolygon(i,e).toSprite()}};Z=Qo([u(),tn("design:paramtypes",[lt,Nt])],Z);var sn=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},on=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},$e=class{static{h(this,"HitTestService");}constructor(t){this.ƀlg=t;}hitTest(t,e){let i=t.world,r=b.getFromP2BodyIDOrFail(t.id),s=f.cloneP2Body(t);this.ƀt(s,e);let n=i.broadphase.aabbQuery(i,this.ƀdt(s)).map(l=>b.getFromP2BodyIDOrFail(l.id)).filter(l=>l.includeInPathfinding).filter(l=>r.canCollideWith(l)).map(l=>f.cloneP2Body(l.p2Body)),a=false;if(n.length!==0){let l=new U__default.default.World;l.addBody(s),n.forEach(c=>l.addBody(c)),l.step(1,1,1),a=l.narrowphase.contactEquations.some(c=>c.bodyA===s||c.bodyB===s),l.clear();}if(e?.testLayerID){let l=a?helpersLib.ColorHelper.red:helpersLib.ColorHelper.green;this.ƀlg.createPhysicsEntityShapeVisual(t,e.testLayerID,{overridePosition:e.overridePosition,overrideRotation:e.overrideRotation,color:l});}return a}ƀt(t,e){e?.overridePosition&&(t.position=f.vectorToArray(e.overridePosition)),e?.overrideRotation&&(t.angle=e.overrideRotation.value);}ƀdt(t){return t.aabbNeedsUpdate=true,t.updateAABB(),t.aabb}};$e=sn([u(),on("design:paramtypes",[Z])],$e);var an=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},ze=class{static{h(this,"CollisionsService");}registerPhysicsWorld(t){t.p2World.on("beginContact",e=>{e.contactEquations.forEach(i=>{this.ƀjg(t,i);});});}step(t,e,i){b.getPhysicsEntities().forEach(r=>{r.ƀbc=[];}),t.p2World.narrowphase.contactEquations.forEach(r=>{this.ƀjg(t,r);}),t.bodiesInContactWith.forEach((r,s)=>{this.ƀff(r.p2Body),r.entity.ƀjv(t.collisionReports.get(s)||[]);}),t.bodiesInContactWith.clear(),t.collisionReports.clear();}ƀff(t){let e=f.arrayToVector(t.velocity);e.length>Ei&&(e=e.normalize(Ei),t.velocity=f.vectorToArray(e)),t.angularVelocity=Math.min(Math.max(t.angularVelocity,-Ti),Ti);}ƀjg(t,e){let i=b.getFromP2BodyID(e.bodyA.id),r=b.getFromP2BodyID(e.bodyB.id);if(i&&r){t.bodiesInContactWith.set(e.bodyA.id,{p2Body:e.bodyA,entity:i}),t.bodiesInContactWith.set(e.bodyB.id,{p2Body:e.bodyB,entity:r});let s=t.collisionReports.get(e.bodyA.id)||[],n=t.collisionReports.get(e.bodyB.id)||[],{collisionDetailsA:a,collisionDetailsB:l}=this.ƀdz(i,r,e);s.push({self:a,target:l}),n.push({self:l,target:a}),t.collisionReports.set(e.bodyA.id,s),t.collisionReports.set(e.bodyB.id,n);}else console.warn("ContactEquationOrganiser: Entity not found for contact equation",e);}ƀdz(t,e,i){let r=t.convertToDTO(),s=e.convertToDTO(),n=f.arrayToVector(i.contactPointA),a=f.arrayToVector(i.contactPointB),{normalA:l,normalB:c}=this.ƀeo(i);return {collisionDetailsA:this.ƀdy(r,i.bodyA.mass,n,l,t.area),collisionDetailsB:this.ƀdy(s,i.bodyB.mass,a,c,e.area)}}ƀdy(t,e,i,r,s){let n,a=i.add(t.position);return {body:t,getPositionReletiveToObject:h(()=>(n||(n=i.rotate(t.rotation.multiply(-1).vector)),n),"getPositionReletiveToObject"),getPositionOnWorld:h(()=>(a||(a=i.add(t.position)),a),"getPositionOnWorld"),position:i,mass:e,area:s,normal:r}}ƀeo(t){let e=f.arrayToVector(t.normalA),i=e.multiplyNumber(-1);return {normalA:e,normalB:i}}};ze=an([u()],ze);var hn=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},ln=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},ke=class extends le{static{h(this,"BorderEntity");}constructor(t,e){super(t,e);}};ke=hn([yt(),ln("design:paramtypes",[Number,Object])],ke);var cn=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},j=1e4,Je=class{static{h(this,"BorderService");}createBorders(t,e,i){this.ƀbv(t,new helpersLib.Vector(e.x/2,-j/2),new helpersLib.Vector(e.x+j*2,j),i),this.ƀbv(t,new helpersLib.Vector(e.x/2,e.y+j/2),new helpersLib.Vector(e.x+j*2,j),i),this.ƀbv(t,new helpersLib.Vector(-j/2,e.y/2),new helpersLib.Vector(j,e.y+j*2),i),this.ƀbv(t,new helpersLib.Vector(e.x+j/2,e.y/2),new helpersLib.Vector(j,e.y+j*2),i);}ƀbv(t,e,i,r){return new ke(t,{shapeDefinition:{materialName:at,group:r,shapeType:exports.PhysicsShapeType.Rectangle,shapeData:i},position:e,rotation:helpersLib.Radian.get0,addInEmptySpace:false,includeOnPathfinding:true}).attachByID(t)}};Je=cn([u()],Je);var un=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},fr=new U__default.default.Material,dn={id:at,density:Number.MAX_SAFE_INTEGER,velocityDrag:1,rotationalDrag:1},Lt=class{static{h(this,"MaterialsService");}createMaterials(t,e,i,r){let s=new Map,n=new Map;if(i.forEach(a=>{s.set(a.id,new U__default.default.Material),n.set(a.id,a);}),s.has(at))throw new Error(`Material with name ${at} cannot be defined, pick another name for the material.`);return s.set(at,fr),n.set(at,dn),this.ƀc(t,e,i,r,s),{materials:s,materialDefinitions:n}}getMaterial(t,e){let i=v.getInstanceByIDOrFail(t);return this.ƀem(e,i.materials)}getMaterialDefinition(t,e){let i=v.getInstanceByIDOrFail(t);return this.ƀel(e,i.materialDefinitions)}ƀem(t,e){let i=e.get(t);if(!i)throw new Error(`Could not find material with name ${t}.`);return i}ƀel(t,e){let i=e.get(t);if(!i)throw new Error(`Could not find material definition with name ${t}.`);return i}ƀc(t,e,i,r,s){this.ƀee(i.map(n=>n.id),r).forEach(n=>{let a=this.ƀem(n.materialA,s),l=this.ƀem(n.materialB,s);t.addContactMaterial(new U__default.default.ContactMaterial(a,l,{friction:n.friction,restitution:n.bounciness,stiffness:n.stiffness,relaxation:n.relaxation}));}),this.ƀd(t,e,i,s);}ƀee(t,e){let i=new Map;e.forEach(s=>{let n=i.get(s.materialA);n||(n=new Map,i.set(s.materialA,n)),n.set(s.materialB,s);});let r=[];return t.forEach((s,n)=>{for(let a=n;a<t.length;a++){let l=t[a],c=i.get(s)?.get(l);c?r.push(c):r.push({materialA:s,materialB:l,friction:0,bounciness:0,relaxation:4,stiffness:1e6});}}),r}ƀd(t,e,i,r){i.forEach(s=>{let n=this.ƀem(s.id,r);t.addContactMaterial(new U__default.default.ContactMaterial(n,fr,{friction:e.friction,restitution:e.bounciness,stiffness:e.stiffness,relaxation:e.relaxation}));});}};Lt=un([u()],Lt);var fn=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},mn=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},Ht=class{static{h(this,"PhysicsWorldService");}constructor(t,e,i,r,s){this.ƀgz=t,this.ƀaj=e,this.ƀaa=i,this.ƀbd=r,this.ƀii=s;}createPhysicsWorld(t){let e=new U__default.default.World({gravity:[0,0]}),{materials:i,materialDefinitions:r}=this.ƀgz.createMaterials(e,t.borderProperties,t.materialDefinitions,t.materialContactDefinitions),{physicsBodyGroupToP2Group:s,physicsBodyGroupToP2Mask:n}=this.ƀii.createBodyGroupsAndMasks(t.physicsBodyGroups,t.interactingBodyGroups),a=new v(t.mapSize,t.modifyUpdateCycle,e,i,r,s,n).attachByID(t.attachTo);return a.onDestroy().tap(()=>{e.clear(),t.modifyUpdateCycle&&m.cleanUpdateModifier();}).attachToRoot(),this.ƀaj.createBorders(a.id,t.mapSize,t.borderProperties.borderBodyGroup),this.ƀbd.registerPhysicsWorld(a),t.modifyUpdateCycle?m.registerUpdateModifier((l,c)=>this.ƀkz(a,l,c)):m.beforeSceneUpdateAction.subscribe(({time:l,delta:c})=>{this.ƀkz(a,l,c);}).attach(a),a.id}addBody(t,e,i,r,s){let n=v.getInstanceByIDOrFail(t);if(i){let a=this.ƀaa.findClosestAvailableSpace(n,e,r);return a?(e.position[0]+=a.x,e.position[1]+=a.y,n.p2World.addBody(e),s&&this.ƀaa.onBodyAdded(n,e,r),true):false}else return n.p2World.addBody(e),s&&this.ƀaa.onBodyAdded(n,e,r),true}removeBody(t,e){v.getInstanceByID(t)?.p2World.removeBody(e);}ƀkz(t,e,i){if(!t.paused.value){t.availabilityGridCache.clear(),t.vectorFieldCache.clear(),t.p2World.step(i,i,i),t.modifyUpdateCycle&&(i=t.p2World.time-t.lastP2Time.value);let r=e+i;this.ƀbd.step(t,r,i),t.onPhysicsStep.trigger({time:r,delta:i}),t.lastP2Time.value=t.p2World.time;}return i}setPaused(t,e){v.getInstanceByIDOrFail(e).paused.set(t);}};Ht=fn([u(),mn("design:paramtypes",[Lt,Je,lt,ze,X])],Ht);var gn=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},Ut=class{static{h(this,"RayCastingService");}castClosest(t,e,i){let r=new U__default.default.RaycastResult,s=new U__default.default.Ray({mode:U__default.default.Ray.CLOSEST,from:f.vectorToArray(e.from),to:f.vectorToArray(e.to),collisionGroup:t.physicsBodyGroupToP2Group.get(i),collisionMask:t.physicsBodyGroupToP2Mask.get(i)});if(t.p2World.raycast(r,s),r.hasHit())return this.ƀbq(r,e)}castAllFirstContacts(t,e,i){let r=new Map,s=new U__default.default.Ray({mode:U__default.default.Ray.ALL,from:f.vectorToArray(e.from),to:f.vectorToArray(e.to),collisionGroup:t.physicsBodyGroupToP2Group.get(i),collisionMask:t.physicsBodyGroupToP2Mask.get(i),callback:h(n=>{let a=r.get(n.body);!r.has(n.body)||n.fraction<a.fraction?r.set(n.body,this.ƀbq(n,e)):n.fraction===a.fraction&&a.isExternal()&&r.set(n.body,this.ƀbq(n,e));},"callback")});return t.p2World.raycast(new U__default.default.RaycastResult,s),Array.from(r.values())}ƀbq(t,e){let i=t.fraction,r=f.arrayToVector(t.normal),s,n,a;return {body:t.body,hitPosition:h(()=>(s===void 0&&(s=e.from.lerp(e.to,i)),s),"hitPosition"),hitDistance:h(()=>(n===void 0&&(n=e.length*i),n),"hitDistance"),isExternal:h(()=>(a===void 0&&(a=e.fromTo.dotProduct(r)<0),a),"isExternal"),normal:r,fraction:i,line:e}}};Ut=gn([u()],Ut);var wn=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},ut=class{static{h(this,"ImpactService");}applyImpulse(t,e,i,r){let s=i.normalize(r),n=[e.x-t.position[0],e.y-t.position[1]];t.applyImpulse(f.vectorToArray(s),n);}};ut=wn([u()],ut);var xn=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},Wt=class{static{h(this,"RayCastHitConverterService");}toExplosionHits(t,e=true){let i=new Map;return t.forEach(r=>{r.hits.forEach(s=>{let n=i.get(s.body);if(n){let a=s.fraction<n.closestRaycastHit.fraction?s:n.closestRaycastHit;n.rayCastHits.push(s),i.set(s.body,{hitCount:n.hitCount+1,closestRaycastHit:a,rayCastHits:n.rayCastHits,isExternal:e?n.isExternal:n.isExternal&&s.isExternal(),explosionCenter:s.line.from});}else {let a=s.isExternal();i.set(s.body,{hitCount:1,closestRaycastHit:s,rayCastHits:[s],isExternal:a,explosionCenter:s.line.from});}});}),[...i.values()].map(r=>this.ƀbr(r,t.length))}ƀbr(t,e){let i=t.hitCount/e,r=t.rayCastHits;if(t.isExternal)return {body:b.getFromP2BodyIDOrFail(t.closestRaycastHit.body.id).convertToDTO(),p2Body:t.closestRaycastHit.body,isExternal:true,normal:t.closestRaycastHit.normal,fraction:t.closestRaycastHit.fraction,ratioOfHits:i,raycastResults:r,getHitPosition:t.closestRaycastHit.hitPosition,getHitDistance:t.closestRaycastHit.hitDistance};{let s=f.arrayToVector(t.closestRaycastHit.body.position);return {body:b.getFromP2BodyIDOrFail(t.closestRaycastHit.body.id).convertToDTO(),p2Body:t.closestRaycastHit.body,isExternal:false,normal:helpersLib.Vector.fromTo(s,t.explosionCenter).normalize(),fraction:0,ratioOfHits:i,raycastResults:r,getHitPosition:h(()=>t.explosionCenter,"getHitPosition"),getHitDistance:h(()=>0,"getHitDistance")}}}};Wt=xn([u()],Wt);var bn=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},Sn=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},Tn=15,Xe=class{static{h(this,"ElipticExplosionService");}constructor(t,e,i,r){this.ƀjc=t,this.ƀlg=e,this.ƀjb=i,this.ƀft=r;}createElipticExplosion(t,e,i,r,s,n,a){let l=v.getInstanceByIDOrFail(t),c=this.ƀcg(e,i,r,s,a?.hitOnlyClosest===true,l),p=this.ƀjb.toExplosionHits(c,false);return this.ƀr(p,n),a?.testLayerID&&this.ƀlg.createElipticExplosionDebugVisual(l,a.testLayerID,c,e,i,r,a.debugRayDuration),p.map(y=>{let{p2Body:w,...A}=y;return A})}ƀcg(t,e,i,r,s,n){let a=[],l=e.vector,c=e.add(helpersLib.Radian.get90).vector,p=c.normalize(i.x);a.push(new helpersLib.Line(t,t.add(p))),a.push(new helpersLib.Line(t,t.add(p.multiplyNumber(-1))));let y=l.normalize(i.y);a.push(new helpersLib.Line(t,t.add(y))),a.push(new helpersLib.Line(t,t.add(y.multiplyNumber(-1))));let w=Math.round(i.y/Tn),A=i.y/(w*2+1)*2,Tt=l.normalize(A),ce=i.x,yr=Math.pow(i.y,2);return helpersLib.ArrayHelper.createIntegerArray(w).forEach(ft=>{let Rt=A*(ft+1),Oi=Tt.multiplyNumber(ft+1),pe=c.normalize(this.ƀex(ce,yr,Rt)),ue=t.add(Oi);a.push(new helpersLib.Line(ue,ue.add(pe))),a.push(new helpersLib.Line(ue,ue.add(pe.multiplyNumber(-1))));let de=t.add(Oi.multiplyNumber(-1));a.push(new helpersLib.Line(de,de.add(pe))),a.push(new helpersLib.Line(de,de.add(pe.multiplyNumber(-1))));}),a.map(ft=>{if(s){let Rt=this.ƀjc.castClosest(n,ft,r);return {line:ft,hits:Rt?[Rt]:[]}}else {let Rt=this.ƀjc.castAllFirstContacts(n,ft,r);return {line:ft,hits:Rt}}})}ƀex(t,e,i){return Math.sqrt(1-Math.pow(i,2)/e)*t}ƀr(t,e){t.forEach(i=>{i.raycastResults.forEach(r=>{let s,n;r.isExternal()?(s=r.line.fromTo,n=e*2):(s=r.line.fromTo.multiplyNumber(-1),n=e*(1-r.fraction)*8),this.ƀft.applyImpulse(r.body,r.hitPosition(),s,n);});});}};Xe=bn([u(),Sn("design:paramtypes",[Ut,Z,Wt,ut])],Xe);var Rn=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},In=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},Ke=class{static{h(this,"ExplosionService");}constructor(t,e,i,r){this.ƀjc=t,this.ƀlg=e,this.ƀjb=i,this.ƀft=r;}createExplosion(t,e,i,r,s,n){let a=v.getInstanceByIDOrFail(t),l=this.ƀeu(i),c=this.ƀcg(e,i,r,l,n?.hitOnlyClosest===true,a),p=this.ƀjb.toExplosionHits(c);return this.ƀr(e,i,s,l,p),n?.testLayerID&&this.ƀlg.createExplosionDebugVisual(a,n.testLayerID,c,e,i,n.debugRayDuration),p}ƀcg(t,e,i,r,s,n){let a=new helpersLib.Radian(helpersLib.PI_360/r),l=new helpersLib.Vector(0,-e),c=a.vector;return helpersLib.ArrayHelper.createEmptyArray(r).map(()=>{let p=t.add(l);return l=l.rotate(c),new helpersLib.Line(t,p)}).map(p=>{if(s){let y=this.ƀjc.castClosest(n,p,i);return {line:p,hits:y?[y]:[]}}else {let y=this.ƀjc.castAllFirstContacts(n,p,i);return {line:p,hits:y}}})}ƀr(t,e,i,r,s){s.forEach(n=>{if(n.isExternal)n.raycastResults.forEach(a=>{let l=i*(1-a.fraction);this.ƀft.applyImpulse(a.body,a.hitPosition(),a.line.fromTo,l);});else {let a=helpersLib.Vector.fromTo(t,f.arrayToVector(n.p2Body.position)),l=a.length/e,c=i*r*l/2;this.ƀft.applyImpulse(n.p2Body,n.getHitPosition(),a,c);}});}ƀeu(t){return t>100?Math.floor(t*.3):Math.floor(t*.26+4)}};Ke=Rn([u(),In("design:paramtypes",[Ut,Z,Wt,ut])],Ke);var Mn=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},$t=class{static{h(this,"PhysicsQueryService");}getMapSize(t){let e=v.getInstanceByIDOrFail(t);return {dimentions:e.mapSize,center:e.mapSizeCenter}}subscribeToPhysicsStep(t,e){return v.getInstanceByIDOrFail(t).onPhysicsStep.subscribe(e)}};$t=Mn([u()],$t);var Bn=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},Gn=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},Ai=class{static{h(this,"PhysicsController");}constructor(t,e,i,r,s,n,a,l){this.ƀip=t,this.ƀib=e,this.ƀlg=i,this.ƀdh=r,this.ƀda=s,this.ƀfk=n,this.ƀio=a,this.ƀft=l;}createPhysicsWorld(t){return this.ƀip.createPhysicsWorld(t)}getMapSize(t){return this.ƀio.getMapSize(t)}setPaused(t,e){this.ƀip.setPaused(t,e);}hitTest(t,e){let i=b.getPhysicsInstanceOrFail(t);return this.ƀfk.hitTest(i.p2Body,e)}findPath(t,e,i,r,s){return this.ƀib.findPathAStar(t,e,i,r,{neighborType:s})}findPathDirection(t,e,i,r){return this.ƀib.findPathDirection(t,e,i,r)}applyImpulse(t,e,i,r){let s=b.getPhysicsInstanceOrFail(t);this.ƀft.applyImpulse(s.p2Body,e,i,r);}createExplosion(t,e,i,r,s,n){return this.ƀdh.createExplosion(t,e,i,r,s,n)}createElipticExplosion(t,e,i,r,s,n,a){return this.ƀda.createElipticExplosion(t,e,i,r,s,n,a)}printPathfindingTestGrid(t,e,i,r,s,n=50){this.ƀlg.printPathfindingTestGrid(t,e,i,r,s,n);}};Ai=Bn([Q(exports.PhysicsGateway),Gn("design:paramtypes",[Ht,Nt,Z,Ke,Xe,$e,$t,ut])],Ai);var _n=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},Ze=class{static{h(this,"ShapeCreationService");}createBody(t,e,i,r,s){let n=v.getInstanceByIDOrFail(t);if(!n.physicsBodyGroupToP2Group.has(e.shapeDefinition.group))throw new Error(`Physics body group "${e.shapeDefinition.group}" not found`);switch(e.shapeDefinition.shapeType){case exports.PhysicsShapeType.Point:return this.ƀbx(n,void 0,i,r,e.shapeDefinition.group,s);case exports.PhysicsShapeType.Circle:return this.ƀbx(n,e.shapeDefinition.shapeData,i,r,e.shapeDefinition.group,s);case exports.PhysicsShapeType.Polygon:return this.ƀcf(n,e.shapeDefinition.shapeData,i,r,e.shapeDefinition.group,s);case exports.PhysicsShapeType.Rectangle:return this.ƀch(n,e.shapeDefinition.shapeData,i,r,e.shapeDefinition.group,s);default:{e.shapeDefinition.shapeType;throw new Error}}}ƀbx(t,e,i,r,s,n){let a=new U__default.default.Circle({collisionGroup:t.physicsBodyGroupToP2Group.get(s),collisionMask:t.physicsBodyGroupToP2Mask.get(s),radius:e});a.material=i;let l=new U__default.default.Body({type:n==="dynamic"?U__default.default.Body.DYNAMIC:U__default.default.Body.STATIC,mass:r.density,damping:r.velocityDrag,angularDamping:r.rotationalDrag});return l.addShape(a),l}ƀcf(t,e,i,r,s,n){let a=t.physicsBodyGroupToP2Group.get(s),l=t.physicsBodyGroupToP2Mask.get(s),c=e.map(w=>new U__default.default.Convex({vertices:w.map(A=>[A.x,A.y]),collisionGroup:a,collisionMask:l})).map(w=>(w.material=i,w)),p=c.reduce((w,A)=>w+A.area,0),y=new U__default.default.Body({type:n==="dynamic"?U__default.default.Body.DYNAMIC:U__default.default.Body.STATIC,mass:p,damping:r.velocityDrag,angularDamping:r.rotationalDrag});return c.forEach(w=>y.addShape(w)),y.setDensity(r.density),y}ƀch(t,e,i,r,s,n){let a=new U__default.default.Box({width:e.x,height:e.y,collisionGroup:t.physicsBodyGroupToP2Group.get(s),collisionMask:t.physicsBodyGroupToP2Mask.get(s)});a.material=i;let l=e.x*e.y,c=new U__default.default.Body({type:n==="dynamic"?U__default.default.Body.DYNAMIC:U__default.default.Body.STATIC,mass:l,damping:r.velocityDrag,angularDamping:r.rotationalDrag});return c.addShape(a),c.setDensity(r.density),c}};Ze=_n([u()],Ze);var Fn=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},Vn=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},Ci=class{static{h(this,"PhysicsInternalController");}constructor(t,e,i,r,s){this.ƀip=t,this.ƀin=e,this.ƀkf=i,this.ƀio=r,this.ƀii=s;}createBody(t,e,i,r,s){return this.ƀkf.createBody(t,e,i,r,s)}getMaterial(t,e){return this.ƀin.getMaterial(t,e)}getMaterialDefinition(t,e){return this.ƀin.getMaterialDefinition(t,e)}getGroupConstant(t,e){return this.ƀii.getGroupConstant(t,e)}getMaskConstant(t,e){return this.ƀii.getMaskConstant(t,e)}addBody(t,e,i,r,s){return this.ƀip.addBody(t,e,i,r,s)}removeBody(t,e){this.ƀip.removeBody(t,e);}subscribeToPhysicsStep(t,e){return this.ƀio.subscribeToPhysicsStep(t,e)}};Ci=Fn([Q(ht),Vn("design:paramtypes",[Ht,Lt,Ze,$t,X])],Ci);exports.AdvancedSound=nt;exports.AnimationFlicker=Bi;exports.AnimationInterpolationFunctions=V;exports.Animations=x;exports.Animator=I;exports.BORDER_MATERIAL_NAME=at;exports.BardLegendsHardReset=R;exports.Camera=qt;exports.ClosestAvailableSpaceHelper=Xt;exports.Container=d;exports.ControllerDecorator=Q;exports.DEFAULT_SHADER_RESOLUTION=D;exports.DeltaTime=ni;exports.DisplayObjectArray=di;exports.Entity=W;exports.EntityDecorator=yt;exports.FadeInContent=Hi;exports.Game=g;exports.Gateway=q;exports.Graphics=T;exports.ImmovablePhysicsEntity=le;exports.MenuEntity=mi;exports.MenuUI=se;exports.MenuView=yi;exports.MovableEntity=Ri;exports.MovablePhysicsEntity=Ii;exports.Music=te;exports.MusicPlayer=li;exports.PathFinder=Kt;exports.PhysicsEntity=b;exports.Placeholder=ci;exports.ROTATIONAL_SPEED_LIMIT=Ti;exports.RichText=pi;exports.SOUND_TRANSITION_DURATION=Y;exports.SPEED_LIMIT=Ei;exports.Scene=fe;exports.SceneDecorator=Cr;exports.ScrollAreaUI=gi;exports.ScrollMaskUI=xt;exports.Service=S;exports.ServiceDecorator=u;exports.SingletonEntity=gt;exports.SlideInContent=Ji;exports.SlideInContentByIndex=oi;exports.SlideStateAnimation=Re;exports.Sound=Qt;exports.Sprite=k;exports.StateAnimation=Dt;exports.Text=re;exports.ThroughEmptyStateAnimation=ve;exports.UpdatableContainer=ui;exports.UpdateCycle=m;exports.VectorFieldPathFinder=Zt;exports.VectorSet=bt;exports.View=mt;exports.ViewDecorator=Qe;
44
+ finalColor = vec4(uColor, 1.0) * highestAlpha;
45
+ }`,e}constructor(t,e){if(super({glProgram:F__namespace.GlProgram.from({vertex:F__namespace.defaultFilterVert,fragment:o.ƀec(t*N)}),resources:{expandUniforms:{uColor:{value:new Float32Array(3),type:"vec3<f32>"},uExpandSquared:{value:0,type:"f32"}}},resolution:N}),this.ƀdf=t,this.ƀdf=t*N,this.ƀdf<0)throw new Error("ExpandWithColorFilter: Expand * resolution cannot be smaller than 0");if(this.ƀdf>10)throw new Error("ExpandWithColorFilter: Expand * resolution cannot be higher than 10");helpersLib.Comparator.isInteger(this.ƀdf)||(this.ƀdf=Math.floor(this.ƀdf));let i=helpersLib.ColorHelper.normalize(e);this.resources.expandUniforms.uniforms.uColor=new Float32Array([i.red,i.green,i.blue]),this.resources.expandUniforms.uniforms.uExpandSquared=this.ƀdf*this.ƀdf,this.padding=this.ƀdf;}};var Te=class extends F__namespace.Filter{static{h(this,"GlowFilter");}constructor(t){super({resolution:N,compatibleRenderers:F__namespace.RendererType.WEBGL});let e={blurRadius:1,expand:0,color:helpersLib.ColorHelper.white,blendMode:exports.BlendMode.Screen,...t};this.ƀdg=new Ee(e.expand,e.color);let i=helpersLib.Comparator.isNumber(e.blurRadius)?new helpersLib.Vector(e.blurRadius,e.blurRadius):e.blurRadius;this.ƀaj=new Gt(i),this.padding=Math.max(i.x,i.y)+e.expand,this.ƀaj.blendMode="screen";}apply(t,e,i,r){let s=F__namespace.TexturePool.getSameSizeTexture(e);this.ƀdg.apply(t,e,s,true),this.ƀaj.apply(t,s,i,r),F__namespace.TexturePool.returnTexture(s);}};var Kt=class o{static{h(this,"GlowSpriteGenerator");}static{this.ƀew=new Map;}static createGlowSpriteFromSprite(t,e,i){let r=this.ƀbh(e),s=helpersLib.Comparator.isNumber(r.blurRadius)?new helpersLib.Vector(r.blurRadius,r.blurRadius):r.blurRadius,n=this.ƀee(t.texture,s,r.expand,r.color,i),a=new F__namespace.Sprite(n);return this.ƀjv(a,helpersLib.Vector.fromVec2(t.anchor),Math.max(s.x,s.y)+r.expand),a.alpha=r.glowAlpha,a.blendMode=r.blendMode,a}static ƀee(t,e,i,r,s){if(!t.id)throw new Error("GlowSpriteGenerator: baseTexture should have an id");if(s){let n=`${t.id}-${i}-${e.x}-${e.y}-${r.r}-${r.g}-${r.b}`;if(o.ƀew.has(n))return o.ƀew.get(n);{let a=this.ƀef(t,e,i,r);return o.ƀew.set(n,a),a}}else return this.ƀef(t,e,i,r)}static ƀef(t,e,i,r){let s=new F__namespace.Sprite(t);s.filters=[new Te({blurRadius:e,expand:i,color:r})];let n=new F__namespace.Container;n.addChild(s);let a=Math.max(e.x,e.y)+i,l=g.instance.renderer.generateTexture({target:n,frame:new F__namespace.Rectangle(-a,-a,s.width+a*2,s.height+a*2)});return l.id=M.insertAsset(l),n.destroy({children:true}),l}static ƀjv(t,e,i){let r=(i+(t.width-i*2)*e.x)/t.width,s=(i+(t.height-i*2)*e.y)/t.height;t.anchor.set(r,s);}static ƀbh(t){let e={glowAlpha:1,blurRadius:5,expand:0,color:helpersLib.ColorHelper.white,blendMode:exports.BlendMode.Add};return t&&(e={...e,...t}),e}};E.onHardReset.subscribe(()=>{Kt.ƀew.clear();}).attachToRoot();var J=class o extends d{static{h(this,"Sprite");}static createByName(t){let e=g.setupOptions.spriteDefinitions[t];if(!e)throw new Error(`Sprite: Could not find sprite definition with name ${t}.`);return new o(e)}static createSnapshotSprite(t){let e=t.ƀip,i=e.parent;i&&i.removeChild(e);let r=g.instance.renderer.generateTexture({target:e,resolution:2,antialias:true,textureSourceOptions:{scaleMode:"linear"}});i&&i.addChild(e);let n={id:M.insertAsset(r),scale:t.scale,size:t.size,anchor:helpersLib.Vector.zero,destroyAssetOnDestroy:true};return new o(n,{ignoreAnchor:true})}constructor(t,e={}){if(super(),this.ƀli=1,!t)throw new Error("Sprite: spriteDefinition cannot be nullish!");this.ƀko=t,this.pixiSprite=new F__namespace.Sprite(M.getAsset(t.id)),this.ƀip.addChild(this.pixiSprite),this.setTextureScale(t.scale),e.textureSize&&(this.pixiSprite.width=e.textureSize.x,this.pixiSprite.height=e.textureSize.y),e.texturePosition&&this.pixiSprite.position.set(e.texturePosition.x,e.texturePosition.y),e.ignoreAnchor||this.pixiSprite.anchor.set(t.anchor.x,t.anchor.y);}destroy(){this.destroyed||(super.destroy(),this.ƀko.destroyAssetOnDestroy&&(M.destroyAsset(this.ƀko.id),this.ƀiq&&M.destroyAsset(this.ƀiq.texture.id)),this.ƀgr?.destroy(),this.ƀal?.destroy(),this.ƀiq&&!this.ƀiq.destroyed&&this.ƀiq.destroy());}setTextureScale(t){return this.textureScale=t,this}get textureScale(){return this.ƀli}set textureScale(t){this.ƀli=t,this.pixiSprite.scale.set(t);}get size(){return new helpersLib.Vector(this.pixiSprite.width,this.pixiSprite.height)}getMask(){return this.pixiSprite}set interactive(t){super.interactive=t,t&&this.ƀko.boundingShapes&&!this.ƀip.hitArea&&(this.ƀip.hitArea=new ls(this.ƀko.boundingShapes,this.size,helpersLib.Vector.fromVec2(this.ƀko.anchor)));}setMipmap(t){return this.mipmap=t,this}get mipmap(){return this.pixiSprite.texture.source.autoGenerateMipmaps}set mipmap(t){this.pixiSprite.texture.source.autoGenerateMipmaps=t;}setBlendMode(t){return this.blendMode=t,this}get blendMode(){return this.pixiSprite.blendMode}set blendMode(t){this.pixiSprite.blendMode=t;}setTint(t){return this.tint=t,this}get tint(){return new F__namespace.Color(this.pixiSprite.tint).toRgb()}set tint(t){this.pixiSprite.tint=t;}setShapeAlpha(t){return this.pixiSprite.alpha=t,this}get shapeAlpha(){return this.pixiSprite.alpha}set shapeAlpha(t){this.pixiSprite.alpha=t;}setGlowAlpha(t){return this.glowAlpha=t,this}get glowAlpha(){if(this.ƀiq)return this.ƀiq.alpha;throw new Error("Sprite: getGlowFilterAlpha cannot be called before glow filter is added.")}set glowAlpha(t){if(this.ƀiq)this.ƀiq.alpha=t;else throw new Error("Sprite: setGlowFilterAlpha cannot be called before glow filter is added.")}getAlignmentVector(t){let e=helpersLib.Vector.fromVec2(this.ƀko.anchor).to(t);return new helpersLib.Vector(this.size.x*e.x,this.size.y*e.y)}setGlowEffect(t){return this.ƀiq&&(this.ƀiq.destroy(),this.ƀiq=void 0),t&&(this.ƀiq=Kt.createGlowSpriteFromSprite(this.pixiSprite,t,!this.ƀko.destroyAssetOnDestroy),this.ƀiq.position.set(this.pixiSprite.x,this.pixiSprite.y),this.ƀiq.scale.set(this.pixiSprite.scale.x,this.pixiSprite.scale.y),this.ƀip.addChild(this.ƀiq)),this}showBoundingShape(t){return t?this.ƀal||(this.ƀal=this.ƀbw().setAlpha(.3).setTint({r:0,g:0,b:200}).displayParent(this)):this.ƀal&&(this.ƀal.destroy(),this.ƀal=void 0),this}getBoundingMask(){if(!this.ƀgr){if(!this.ƀko.boundingShapes)throw new Error("Sprite: cropOverflowingParts cannot be used without polygonDefinition!");this.ƀgr=this.ƀbw(),this.ƀgr.displayParent(this);}return this.ƀgr}ƀbw(){if(!this.ƀko.boundingShapes)throw new Error("Sprite: bounding shape cannot be created without polygonDefinition!");return R.createPolygon(this.ƀko.boundingShapes,helpersLib.ColorHelper.white).toSprite().attach(this)}download(){let t=g.instance.renderer.extract.canvas(this.ƀip);if(!t.toBlob)throw new Error("Sprite: canvas.toBlob is undefined!");return t.toBlob(e=>{if(!e)throw new Error("Sprite: blob is undefined!");let i=document.createElement("a");document.body.append(i),i.download="sprite.png",i.href=URL.createObjectURL(e),i.click(),i.remove();},"image/png"),this}},ls=class{static{h(this,"CompositeHitArea");}constructor(t,e,i){this.ƀke=t.map(r=>new F__namespace.Polygon(r.map(s=>new F__namespace.Point(s.x,s.y))));}contains(t,e){return this.ƀke.some(i=>i.contains(t,e))}};var Re=class{static{h(this,"DashedLineHelper");}static getLines(t,e,i){let r=helpersLib.Vector.fromTo(t,e),s=r.normalize(),n=r.length-i.lineStartGap-i.lineEndGap,a=[];if(n<=0)return a;let l=t.add(s.normalize(i.lineStartGap));if(n<=i.dashGap+i.dashLength*.5)return a.push({from:l,to:l.add(s.normalize(n))}),a;let c=n-i.dashGap,p=i.dashLength+i.dashGap,y=Math.floor(c/p),w=c-p*y;y>=1&&w<i.dashLength&&(w+=p,y--);let C=s.normalize(w/2),Ct=s.normalize(i.dashGap);if(a.push({from:l,to:l.add(C)}),l=l.add(C),y>0){let ue=s.normalize(i.dashLength);helpersLib.ArrayHelper.createEmptyArray(y).forEach(()=>{l=l.add(Ct),a.push({from:l,to:l.add(ue)}),l=l.add(ue);});}return l=l.add(Ct),a.push({from:l,to:l.add(C)}),a}};var R=class o extends d{static{h(this,"Graphics");}static{this.ƀcx=new Map;}static createArrow(t,e){let i=new F__namespace.Graphics;return [[{x:0,y:-t/2},{x:t*3/8,y:-t/8},{x:t/4,y:0},{x:0,y:-t/4},{x:-t/4,y:0},{x:-t*3/8,y:-t/8}],[{x:0,y:-t/4},{x:t/8-t/30,y:-t/8-t/30},{x:t/8-t/30,y:t*7/16},{x:-t/8+t/30,y:t*7/16},{x:-t/8+t/30,y:-t/8-t/30}]].forEach(s=>{i.poly(s.map(n=>new F__namespace.Point(n.x,n.y))).fill(e);}),new o(i,JSON.stringify({type:"arrow",size:t,color:e}))}static createDashedLine(t,e,i){let r={width:2,dashLength:10,dashGap:4,lineStartGap:0,lineEndGap:0,color:helpersLib.ColorHelper.white,...i},s=new F__namespace.Graphics;return Re.getLines(t,e,r).forEach(a=>{s.moveTo(a.from.x,a.from.y).lineTo(a.to.x,a.to.y);}),s.stroke({width:r.width,color:r.color}),new o(s,JSON.stringify({type:"dashedLine",from:t,to:e,options:r}))}static createVector(t,e,i){let r=new F__namespace.Graphics;return r.moveTo(t.x,t.y),r.lineTo(e.x,e.y),r.stroke({width:2,color:i}),r.circle(t.x,t.y,3),r.fill(helpersLib.ColorHelper.white),r.stroke({width:1,color:i}),new o(r,JSON.stringify({type:"line",start:t,end:e,color:i}))}static createRectangleBorders(t,e,i){let r=new F__namespace.Graphics;return r.rect(0,0,t.x,e),r.rect(0,e,e,t.y-e*2),r.rect(t.x-e,e,e,t.y-e*2),r.rect(0,t.y-e,t.x,e),r.fill(i),new o(r,JSON.stringify({type:"rectangle-borders",size:t,borderSize:e,color:i}))}static createRectangle(t,e=helpersLib.ColorHelper.white){let i=new F__namespace.Graphics;return i.rect(0,0,t.x,t.y).fill(e),new o(i,JSON.stringify({type:"rectangle",size:t,color:e}))}static createCircle(t,e){let i=new F__namespace.Graphics;return i.circle(0,0,t).fill(e),new o(i,JSON.stringify({type:"circle",radius:t,color:e}))}static createElipse(t,e){let i=new F__namespace.Graphics;return i.ellipse(0,0,t.x,t.y).fill(e),new o(i,JSON.stringify({type:"elipse",size:t,color:e}))}static createPolygon(t,e){let i=new F__namespace.Graphics,r=JSON.stringify({type:"polygon",polygon:t,color:e});return t.forEach(s=>{i.poly(s.map(n=>new F__namespace.Point(n.x,n.y))).fill(e);}),new o(i,r)}static createRegularPolygon(t,e,i){let r=new F__namespace.Graphics,s=new helpersLib.Radian(helpersLib.PI_360/t);r.moveTo(e,0);for(let n=1;n<=t;n++){let l=s.multiply(n).vector.normalize(e),c=e+l.x,p=e+l.y;r.lineTo(c,p);}return r.fill(i),new o(r,JSON.stringify({type:"regular-polygon",sides:t,radius:e,color:i}))}constructor(t,e){super(),this.ƀip.addChild(t),this.pixiGraphics=t,this.ƀao=e;}destroy(){this.destroyed||(super.destroy(),!this.pixiGraphics.destroyed&&this.pixiGraphics.destroy());}toSprite(t){let e={cacheName:this.ƀao,cache:false,...t},i=this.ƀer(e.cacheName,e.cache),r={id:i.textureID,scale:1,size:i.bounds,anchor:{x:0,y:0},destroyAssetOnDestroy:!e.cache},s=new J(r,{texturePosition:i.bounds,ignoreAnchor:true});return this.attachToRoot(),this.destroy(),s}ƀer(t,e){if(e){let i=o.ƀcx.get(t);return i||(i=this.ƀci(),o.ƀcx.set(t,i)),i}else return this.ƀci()}ƀci(){let t=g.instance.renderer.generateTexture(this.pixiGraphics);t.id=M.insertAsset(t);let e=this.pixiGraphics.getBounds();return {textureID:t.id,bounds:new helpersLib.Vector(e.x,e.y)}}};var si=class{static{h(this,"AnimationEaseInOutFlatter");}start(){}multiplierFunction(t){return 3*(1-t)*Math.pow(t,2)+Math.pow(t,3)}},Pt=class o extends d{static{h(this,"ScrollMaskUI");}static{this.ƀcx=new Map;}constructor(t,e,i,r=exports.ScrollDirection.Vertical){if(super(),i<0)throw new Error("The padding of the scroll mask cannot be lower than '0'");if(e.y<i*2)throw new Error(`The height of the scroll mask cannot be lower than '${i*2}'`);let s=new d;r===exports.ScrollDirection.Horizontal?this.ƀcc(e,i,s):this.ƀcj(e,i,s),this.ƀgr=J.createSnapshotSprite(s).attach(this),s.destroy(),t.setMask(this.ƀgr);}ƀcj(t,e,i){e>0&&this.ƀbz(new helpersLib.Vector(t.x,e)).displayParent(i).attach(i),R.createRectangle(new helpersLib.Vector(t.x,t.y-e*2),helpersLib.ColorHelper.white).toSprite().setPosition(new helpersLib.Vector(0,e),{round:false}).displayParent(i).attach(i),e>0&&this.ƀbz(new helpersLib.Vector(t.x,e)).setPosition(new helpersLib.Vector(t.x,t.y),{round:false}).setRotation(helpersLib.Radian.get180).displayParent(i).attach(i);}ƀcc(t,e,i){e>0&&this.ƀbz(new helpersLib.Vector(t.y,e)).setPosition(new helpersLib.Vector(0,t.y),{round:false}).setRotation(helpersLib.Radian.get270).displayParent(i).attach(i),R.createRectangle(new helpersLib.Vector(t.x-e*2,t.y),helpersLib.ColorHelper.white).toSprite().setPosition(new helpersLib.Vector(e,0),{round:false}).displayParent(i).attach(i),e>0&&this.ƀbz(new helpersLib.Vector(t.y,e)).setPosition(new helpersLib.Vector(t.x,0),{round:false}).setRotation(helpersLib.Radian.get90).displayParent(i).attach(i);}ƀbz(t){let i={id:this.ƀca(t.y),scale:1,size:t,anchor:{x:0,y:0}};return new J(i,{textureSize:t,ignoreAnchor:true})}ƀca(t){let e=JSON.stringify({type:"gradient",length:t}),i=o.ƀcx.get(e);if(!i){let r=document.createElement("canvas");r.width=1,r.height=t;let s=r.getContext("2d");if(s){let n=new si;helpersLib.ArrayHelper.createIntegerArray(t).forEach(l=>{let c=`rgba(255, 255, 255, ${n.multiplierFunction(l/t)})`;s.fillStyle=c,s.fillRect(0,l,1,1);});let a=F__namespace.Texture.from(r);i=M.insertAsset(a),o.ƀcx.set(e,i);}else throw new Error("Canvas context is null")}return i}};exports.SlideStateAnimationState=void 0;(function(o){o[o.Appear=1]="Appear",o[o.Disappear=2]="Disappear";})(exports.SlideStateAnimationState||(exports.SlideStateAnimationState={}));var Ie=class extends actionsLib.Attachable{static{h(this,"SlideStateAnimation");}onStateChange(t){return this.ƀhr.subscribe(e=>t(e.state,e.index)).attach(this),this}onValueChange(t){return this.ƀht.subscribe(e=>t(e.value,e.index)).attach(this),this}get state(){return {value:this.ƀkv.state.value,item:this.ƀfs,nextItem:this.ƀhi,queuedItem:this.ƀkv.state.queuedItem,animationState:this.ƀo}}constructor(t){super(),this.ƀo="idle",this.ƀhr=new actionsLib.Action,this.ƀht=new actionsLib.Action,this.ƀhw={duration:500,animation:x.easeInOutCubic,...t},this.ƀkv=new _t({duration:this.ƀhw.duration,animation:this.ƀhw.animation}).onStateChange((e,i)=>this.ƀez(e,i)).onValueChange(e=>this.ƀfe(e)).attach(this);}setIndex(t,e){if(!helpersLib.Comparator.isInteger(t))throw new Error("SlideStateAnimation: index must be an integer!");this.ƀfs===void 0?(this.ƀfs=t,this.ƀhr.trigger({state:exports.SlideStateAnimationState.Appear,index:t}),this.ƀkv.setItem(t,e)):this.ƀfs!==t?this.ƀhi!==t?this.ƀo==="idle"?(this.ƀo=t>this.ƀfs?"transitionForward":"transitionBackward",this.ƀhi=t,this.ƀhr.trigger({state:exports.SlideStateAnimationState.Appear,index:this.ƀhi}),this.ƀkv.setItem(t,e)):this.ƀkv.setItem(t,e):this.ƀo==="reverting"&&this.ƀhi===t&&(this.ƀo=t>this.ƀfs?"transitionForward":"transitionBackward",this.ƀkv.setItem(t,e)):(this.ƀo==="transitionForward"||this.ƀo==="transitionBackward")&&(this.ƀo="reverting",this.ƀkv.setItem(t,e));}ƀez(t,e){switch(this.ƀfs!==void 0&&this.ƀfs!==t&&this.ƀfs!==e&&this.ƀhr.trigger({state:exports.SlideStateAnimationState.Disappear,index:this.ƀfs}),this.ƀhi!==void 0&&this.ƀhi!==t&&this.ƀhi!==e&&this.ƀhr.trigger({state:exports.SlideStateAnimationState.Disappear,index:this.ƀhi}),e!==void 0&&e!==this.ƀfs&&e!==this.ƀhi&&this.ƀhr.trigger({state:exports.SlideStateAnimationState.Appear,index:e}),this.ƀo){case "idle":break;case "transitionForward":case "transitionBackward":e===void 0?(this.ƀo="idle",this.ƀfs=this.ƀhi,this.ƀhi=void 0):this.ƀfs!==t&&this.ƀfa(t,e);break;case "reverting":e===void 0?(this.ƀo="idle",this.ƀhi=void 0):this.ƀfs!==e&&this.ƀfa(t,e);break;default:{this.ƀo;throw new Error}}}ƀfa(t,e){this.ƀfs=t,this.ƀhi=e,this.ƀht.trigger({value:0,index:this.ƀfs}),this.ƀo=this.ƀfs<this.ƀhi?"transitionForward":"transitionBackward";}ƀfe(t){let e=1;(this.ƀo==="transitionBackward"||this.ƀo==="reverting"&&this.ƀfs!==void 0&&this.ƀhi!==void 0&&this.ƀfs>this.ƀhi)&&(e=-1),(this.ƀo==="idle"||t!==0)&&this.ƀht.trigger({value:helpersLib.NumberHelper.ensurePositiveZero(-e*t),index:this.ƀfs}),this.ƀhi!==void 0&&this.ƀht.trigger({value:helpersLib.NumberHelper.ensurePositiveZero(e*(1-t)),index:this.ƀhi});}};exports.ScrollDirection=void 0;(function(o){o[o.Horizontal=1]="Horizontal",o[o.Vertical=2]="Vertical";})(exports.ScrollDirection||(exports.ScrollDirection={}));var oi=class extends d{static{h(this,"SlideInContentByIndex");}constructor(t,e){super(),this.ƀby=t,this.ƀcs="x",this.ƀbo=new Map,this.ƀhw={duration:300,animation:x.easeInOutCubic,size:new helpersLib.Vector(500,500),margin:20,direction:exports.ScrollDirection.Horizontal,...e};let i=this.ƀhw.direction===exports.ScrollDirection.Horizontal?new helpersLib.Vector(this.ƀhw.size.x+this.ƀhw.margin*2,this.ƀhw.size.y):new helpersLib.Vector(this.ƀhw.size.x,this.ƀhw.size.y+this.ƀhw.margin*2),r=new d().setPosition(this.ƀhw.direction===exports.ScrollDirection.Horizontal?new helpersLib.Vector(-this.ƀhw.margin,0):new helpersLib.Vector(0,-this.ƀhw.margin),{round:false}).displayParent(this).attach(this);this.ƀcd(i,this.ƀhw.margin,this.ƀhw.direction,r),this.ƀcs=this.ƀhw.direction===exports.ScrollDirection.Horizontal?"x":"y",this.ƀkv=new Ie({duration:this.ƀhw.duration,animation:this.ƀhw.animation}).onStateChange((s,n)=>{if(s===exports.SlideStateAnimationState.Appear){let a=new d().displayParent(this).attach(this);this.ƀbo.set(n,a),this.ƀby({index:n,container:a});}else {let a=this.ƀbo.get(n);a&&(a.destroy(),this.ƀbo.delete(n));}}).onValueChange((s,n)=>{let a=this.ƀbo.get(n);if(a){let l={x:0,y:0};l[this.ƀcs]=i[this.ƀcs]*s+this.ƀhw.margin,a.setPosition(helpersLib.Vector.fromVec2(l),{round:false});}}).attach(this),this.addChildTo=r;}setIndex(t,e){return this.ƀkv.setIndex(t,e),this}ƀcd(t,e,i,r){new Pt(r,new helpersLib.Vector(t.x,t.y),e,i).attach(this);}},Ji=class extends oi{static{h(this,"SlideInContent");}constructor(t,e,i){super(r=>{let s=this.indexToItem.get(r.index);if(s)e({index:r.index,item:s,container:r.container});else throw new Error(`SlideInContent: The item with index '${r.index}' is not part of the items list`)},i),this.itemToIndex=new Map,this.indexToItem=new Map,t.forEach((r,s)=>{this.itemToIndex.set(r,s),this.indexToItem.set(s,r);});}setItem(t,e){let i=this.itemToIndex.get(t);if(i!==void 0)this.setIndex(i,e);else throw new Error(`SlideInContent: The item '${t}' is not part of the items list`);return this}};var Et=class{static{h(this,"VectorSet");}constructor(){this.ƀlv=new Map;}add(t){let e=this.ƀlv.get(t.x);e||(e=new Set,this.ƀlv.set(t.x,e)),e.add(t.y);}has(t){let e=this.ƀlv.get(t.x);return e?e.has(t.y):false}delete(t){let e=this.ƀlv.get(t.x);return e?e.delete(t.y):false}};var ni=class{static{h(this,"DeltaTime");}static adjustMultiplier(t,e){return Math.pow(t,e)}};var D=class{static{h(this,"PositionToGridPositionConverter");}static areaToGridArea(t,e){return new helpersLib.Rectangle(this.positionToGridPosition(t.topLeft,e),this.positionToGridPosition(t.bottomRight,e))}static positionToGridPosition(t,e){return t.divideNumber(e).floor()}static gridPositionToPosition(t,e){return t.add(new helpersLib.Vector(.5,.5)).multiplyNumber(e)}};var Zt=class{static{h(this,"ClosestAvailableSpaceHelper");}static findByConvertingGridSpace(t,e,i){let r=new helpersLib.Vector(Math.ceil(e.size.x/i)-1,Math.ceil(e.size.y/i)-1),s=D.areaToGridArea(e,i);if(this.ƀav(t,s))return helpersLib.Vector.zero;let n=t.movePositionInsideGrid(s.topLeft),a=helpersLib.Vector.fromTo(s.topLeft,n),l=this.find(t,n,r);if(l){let c=l.add(a),p=helpersLib.Vector.fromTo(s.topLeft.multiplyNumber(i),e.topLeft);return new helpersLib.Vector(c.x*i+((r.x+1)*i-e.size.x)/2-p.x,c.y*i+((r.y+1)*i-e.size.y)/2-p.y)}}static find(t,e,i){let r=new Et,s=new helpersLib.Queue(e);for(;s.notEmpty;){let n=s.pop();r.add(n);let a=new helpersLib.Rectangle(n,n.add(i));if(this.ƀav(t,a))return helpersLib.Vector.fromTo(e,n);t.getNeighborPositions(n,"orthogonal").forEach(l=>{r.has(l)||s.add(l);});}}static ƀav(t,e){if(!t.isAreaWithinBounds(e))return false;for(let i=e.topLeft.y;i<=e.bottomRight.y;i++)for(let r=e.topLeft.x;r<=e.bottomRight.x;r++)if(!t.get(new helpersLib.Vector(r,i)))return false;return true}};var Yi=Math.SQRT2-1,Es=class{static{h(this,"PathfinderNode");}constructor(t,e){this.position=t,this.distanceToEnd=e,this.closed=false,this.distanceFromStart=Number.MAX_SAFE_INTEGER,this.parent=void 0;}get pathLength(){return this.distanceFromStart+this.distanceToEnd}getStepCost(t){return this.position.x!==t.position.x&&this.position.y!==t.position.y?Math.SQRT2:1}createSolutionPath(t){let e=[],i=this;for(;i!==void 0;)e.push(i.position),i=i.parent;return e.reverse(),{directPathAvailable:t,path:e}}},Ts=class{static{h(this,"PathfinderGrid");}constructor(t,e,i,r){this.ƀey=t,this.ƀlc=i,this.ƀhh=r,this.ƀhv=new helpersLib.BinaryHeap("min"),this.ƀhk=new helpersLib.Grid({size:t.size,defaultValue:void 0});let s=this.ƀce(e);s.distanceFromStart=0,this.ƀhv.add(s.pathLength,s),this.ƀae=s;}get hasOpenNodes(){return this.ƀhv.size>0}getNeighbors(t){let e=[];for(let i of this.ƀey.getNeighborPositions(t.position,this.ƀhh))if(this.ƀey.get(i)){let r=this.ƀhk.get(i)??this.ƀce(i);r.closed||e.push(r);}return e}popLowestPathCostNode(){let t=this.ƀhv.pop();return t.closed=true,t.distanceToEnd<this.ƀae.distanceToEnd&&(this.ƀae=t),t}changeNodeCost(t,e,i){t.distanceFromStart=e,t.parent=i,this.ƀhv.updatePriority(t,t.pathLength)||this.ƀhv.add(t.pathLength,t);}getBestClosedNode(){return this.ƀae}ƀce(t){let e=Math.abs(t.x-this.ƀlc.x),i=Math.abs(t.y-this.ƀlc.y),r=this.ƀhh==="orthogonal"?e+i:e>i?e+Yi*i:i+Yi*e,s=new Es(t,r);return this.ƀhk.isPointWithinBounds(t)&&this.ƀhk.set(t,s),s}},Qt=class{static{h(this,"PathFinder");}static findPath(t,e,i,r){let s=new Ts(t,e,i,r);for(;s.hasOpenNodes;){let n=s.popLowestPathCostNode();if(n.position.isEqual(i))return n.createSolutionPath(true);for(let a of s.getNeighbors(n)){let l=n.distanceFromStart+n.getStepCost(a);l<a.distanceFromStart&&s.changeNodeCost(a,l,n);}}return s.getBestClosedNode().createSolutionPath(false)}};var qt=class{static{h(this,"VectorFieldPathFinder");}constructor(t,e){this.ƀlb=t,this.ƀy=e,this.ƀfh=this.ƀeh(this.ƀy.size),this.ƀme=new helpersLib.Grid({size:this.ƀy.size,defaultValue:this.ƀfh}),this.ƀct=new helpersLib.Grid({size:this.ƀy.size,defaultValue:void 0});let i=new Et,r=new helpersLib.Queue;for(this.ƀdu(this.ƀy.cropAreaOutsideOfTheGrid(t)).forEach(n=>{this.ƀme.set(n,0),r.add(n);});r.notEmpty;){let n=r.pop();if(!i.has(n)){i.add(n);let a=this.ƀme.getOrFail(n);this.ƀem(n,this.ƀy).forEach(l=>{if(!i.has(l.position)){let c=this.ƀme.getOrFail(l.position),p=a+l.distance;this.ƀy.getOrFail(l.position)&&p<c&&(this.ƀme.set(l.position,p),r.add(l.position));}});}}}getDirectionToTarget(t){if(!t.isInsideRectangle(this.ƀlb)){if(t=this.ƀme.movePositionInsideGrid(t),this.ƀct.has(t))return this.ƀct.get(t);{let e=this.ƀem(t,this.ƀy),i;return this.ƀme.getOrFail(t)>=this.ƀfh?e.some(s=>this.ƀy.get(s.position))&&(e.some(n=>!this.ƀy.get(n.position))?i=this.ƀeb(e):i=this.ƀdw(t,e)):i=this.ƀdw(t,e),this.ƀct.set(t,i),i}}}ƀeb(t){let e=t.filter(i=>this.ƀy.get(i.position)).map(i=>i.direction.radian);return helpersLib.Radian.getAverage(...e)}ƀdw(t,e){let i=e.filter(r=>this.ƀme.getOrFail(r.position)<this.ƀfh).reduce((r,s)=>{let n=this.ƀme.getOrFail(s.position)+s.distance;return n<r.bestWeight?(r.bestDirections=[s.direction],r.bestWeight=n):n===r.bestWeight&&r.bestDirections.push(s.direction),r},{bestDirections:[],bestWeight:this.ƀfh}).bestDirections;return this.ƀes(i,t)}ƀes(t,e){if(t.length>0){let i=t.reduce((r,s)=>r.add(s),helpersLib.Vector.zero);if(i.isZero()||!this.ƀfy(e,i))return helpersLib.Random.pickRandomElement(t).radian;if(t.length>=1)return i.radian}}ƀfy(t,e){let i=t.add(this.ƀlw(e));return this.ƀy.isPointWithinBounds(i)&&this.ƀy.getOrFail(i)}ƀem(t,e){return this.ƀme.getNeighborDirections(t,"all").map(i=>({position:t.add(i),direction:i,distance:i.x!==0&&i.y!==0?14:10}))}ƀdu(t){let e=[];for(let i=t.topLeft.y;i<=t.bottomRight.y;i++)for(let r=t.topLeft.x;r<=t.bottomRight.x;r++)e.push(new helpersLib.Vector(r,i));return e}ƀlw(t){let e=t.normalize().round();return new helpersLib.Vector(e.x,e.y)}ƀeh(t){return (t.x+t.y)*20}};var S=class o{static{h(this,"AudioAssets");}static{this.ƀan=new Map;}static{this.context=new AudioContext;}static async load(t){await Promise.all(t.map(e=>fetch(e.url).then(i=>i.arrayBuffer()).then(i=>this.context.decodeAudioData(i)).then(i=>this.ƀan.set(e.id,i))));}static createSource(t){let e=o.ƀdv(t),i=o.context.createBufferSource();return i.buffer=e,i}static ƀdv(t){let e=this.ƀan.get(t);if(!e)throw new Error(`Audio: Sound with id ${t} was not loaded.`);return e}};E.onHardReset.subscribe(()=>{S.context=new AudioContext,S.ƀan.clear();}).attachToRoot();var K=1e3,Y=class o{static{h(this,"Audio");}static ƀjy(){return this.ƀfv=new o,this.ƀfv}constructor(){this.ƀgu=S.context.createGain(),this.ƀgt=S.context.createGain(),this.ƀhg=S.context.createGain(),this.ƀkh=S.context.createGain(),this.ƀgu.connect(S.context.destination),this.ƀgt.connect(this.ƀgu),this.ƀhg.connect(this.ƀgt),this.ƀkh.connect(this.ƀgt),this.ƀgv=new I(this.ƀgu.gain,"value",{duration:500*2,animation:x.easeIn,reAnimateHandling:exports.ReAnimateHandlingType.CompletePrevious,completionHandling:exports.AnimationsCompletionHandlingType.StayInCurrentState}),this.ƀgv.set({value:0});}setVolumes(t){this.ƀgt.gain.value=t.master,this.ƀhg.gain.value=t.music,this.ƀkh.gain.value=t.sound;}appear(t,e="ease"){switch(e){case "ease":return this.ƀgv.set({value:t?0:1}),this.ƀgv.animate({value:t?1:0}).chainToRoot();case "instant":return this.ƀgv.set({value:t?1:0}),actionsLib.SingleEvent.instant();default:{throw new Error}}}};E.onHardReset.subscribe(()=>{Y.ƀjy();}).attachToRoot();var Os=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s};exports.CameraGateway=class nt extends q(){static{h(this,"CameraGateway");}};exports.CameraGateway=Os([u()],exports.CameraGateway);var Ms=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},Rt=class extends q(){static{h(this,"CameraViewGateway");}};Rt=Ms([u()],Rt);var Xi;(function(o){o.BackgroundScreen="backgroundScreen",o.Background="background",o.Main="main",o.Foreground="foreground",o.ForegroundScreen="foregroundScreen";})(Xi||(Xi={}));exports.FocusingAnimation=void 0;(function(o){o[o.Instant=1]="Instant",o[o.EaseInOut=2]="EaseInOut",o[o.EaseOut=3]="EaseOut";})(exports.FocusingAnimation||(exports.FocusingAnimation={}));var te=class{static{h(this,"Camera");}get position(){return this.ƀaq.getCameraPosition()}constructor(){this.ƀaq=P.get(exports.CameraGateway),this.ƀau=P.get(Rt),this.ƀaq.createCamera(),this.layers=this.ƀau.getLayers();}setPosition(t){this.ƀaq.setPosition(t);}setTransition(t){this.ƀaq.setTransition(t);}appear(t,e="alpha",i=0){return this.ƀau.appear(t,e,i)}screenPositonToStagePosition(t){return this.ƀau.screenPositonToStagePosition(t)}};var g=class o{static{h(this,"Game");}static get instance(){return this.ƀfv}static{this.pause=actionsLib.Reducer.createOr();}static{this.freeze=actionsLib.Reducer.createOr();}static get camera(){return this.ƀap}static get audio(){return this.ƀx}static appear(t,e){let i=e?.audio??"ease",r=e?.camera??"alpha";return actionsLib.ActionLib.all([this.audio.appear(t,i),this.camera.appear(t,r,i!=="instant"?0:500)]).mapToVoid().chainToRoot()}static get time(){return m.ƀlj}static get setupOptions(){return this.ƀkb}constructor(t){if(this.ƀjn=new actionsLib.Variable(helpersLib.Vector.zero),this.screenSize=this.ƀjn.notifier,this.ƀjo=new actionsLib.Variable(helpersLib.Vector.zero),this.screenSizeCenter=this.ƀjo.notifier,this.devMode=false,o.ƀfv)throw new Error("There can be only one Game instance!");this.ƀbk={screenResolution:void 0,maxScreenResolution:void 0,devMode:false,backgroundColor:helpersLib.ColorHelper.black,antialias:false,resolution:1,...t},this.devMode=this.ƀbk.devMode||false,this.ƀio=new F__namespace.Application;let e=o.pause.effect(false).attachToRoot();o.freeze.subscribe(i=>{e.update(i),i?S.context.suspend():S.context.resume();}).attachToRoot();}async setup(t){o.ƀkb=t;let e=helpersLib.JsonHelper.removeUndefinedProperties({backgroundColor:this.ƀbk.backgroundColor,autoStart:false,antialias:this.ƀbk.antialias,resolution:this.ƀbk.resolution,width:this.ƀbk.screenResolution?.width,height:this.ƀbk.screenResolution?.height,useBackBuffer:true,powerPreference:"high-performance",eventFeatures:{globalMove:false}});await this.ƀio.init(e);let i=document.body.appendChild(this.ƀio.canvas);this.ƀjx(i),await Promise.all([M.loadGameAssets(t.spriteAssetDefinitions),M.loadGameAssets(t.fontAssetDefinitions),S.load(t.soundAssetDefinitions)]),o.ƀfv=this,this.renderer=this.ƀio.renderer,globalThis.ƀa=this.ƀio,this.ƀfc(),o.ƀap=new te,o.ƀx=Y.ƀjy(),this.ƀio.start(),this.ƀio.ticker.add(()=>{o.freeze.value||m.triggerUpdateTick(this.ƀio.ticker.deltaMS);});}setResolution(t){if(this.ƀio.renderer.resolution!==t){this.ƀio.renderer.resolution=t;let e=this.ƀeq();this.ƀio.renderer.resize(e.x,e.y);}}ƀfc(){this.ƀdb(),this.ƀjw(),window.addEventListener("resize",t=>{this.ƀdb(),this.ƀjw();});}ƀdb(){let t=this.ƀeq();(t.x!==this.ƀio.screen.width||t.y!==this.ƀio.screen.height)&&this.ƀio.renderer.resize(t.x,t.y);}ƀjw(){let t=new helpersLib.Vector(this.ƀio.screen.width,this.ƀio.screen.height);this.ƀjn.value=t,this.ƀjo.value=t.multiplyNumber(.5).round();}ƀeq(){let t=this.ƀbk.screenResolution?.width??window.innerWidth,e=this.ƀbk.screenResolution?.height??window.innerHeight;return this.ƀbk.maxScreenResolution&&(t=Math.min(t,this.ƀbk.maxScreenResolution.width),e=Math.min(e,this.ƀbk.maxScreenResolution.height)),new helpersLib.Vector(t,e)}ƀjx(t){this.ƀbk.maxScreenResolution&&(t.style.maxWidth=`${this.ƀbk.maxScreenResolution?.width}px`,t.style.maxHeight=`${this.ƀbk.maxScreenResolution?.height}px`),t.style.width="100%",t.style.height="100%";}};var ee=class o extends actionsLib.IDAttachable{static{h(this,"Sound");}static createByName(t,e){let i=g.setupOptions.soundDefinitions[t];if(!i)throw new Error(`Sound: Could not find sound definition with name ${t}.`);return new o(i,e)}get volume(){return this.ƀdq.gain.value}set volume(t){this.setVolume(t);}setVolume(t){return this.ƀdq.gain.value=t,this}constructor(t,e){super(),this.ƀki=t,this.ƀdq=S.context.createGain(),this.ƀdq.connect(Y.ƀfv.ƀkh),this.ƀfg=this.ƀdq,e?.volume!==void 0&&(this.volume=e.volume),this.ƀiu(e?.time??0);}destroy(){this.destroyed||(super.destroy(),this.ƀkx(),this.ƀdq?.disconnect());}ƀlt(){this.ƀfg.disconnect(),this.ƀfg.connect(Y.ƀfv.ƀhg);}ƀiu(t){this.ƀkx();let e=this.ƀki.loop;if(this.ƀkr=helpersLib.NumberHelper.clamp(t,0,e?e.to:this.ƀki.duration),e){let i=e.from,r=e.to;this.ƀiv({soundID:this.ƀki.id,start:this.ƀkr,end:this.ƀkr<i?i:r,loop:false,onComplete:h(()=>{this.ƀkl.disconnect(),this.ƀiv({soundID:this.ƀki.id,start:i,end:r,loop:true});},"onComplete")});}else this.ƀiv({soundID:this.ƀki.id,start:this.ƀkr,end:void 0,loop:false,onComplete:h(()=>this.destroy(),"onComplete")});}ƀkx(){this.ƀkl&&(this.ƀkl.onended=null,this.ƀkl.stop(),this.ƀkl.disconnect());}ƀiv(t){this.ƀkl=S.createSource(t.soundID),this.ƀkl.connect(this.ƀdq),t.onComplete&&(this.ƀkl.onended=t.onComplete),t.loop?(this.ƀkl.loop=true,this.ƀkl.loopStart=t.start,this.ƀkl.loopEnd=t.end??this.ƀkl.buffer.duration,this.ƀkl.start(0,t.start)):this.ƀkl.start(0,t.start,t.end?t.end-t.start:void 0);}};var Ns=800,Oe=-128,ht=class o extends ee{static{h(this,"AdvancedSound");}static createByName(t,e){let i=g.setupOptions.soundDefinitions[t];if(!i)throw new Error(`AdvancedSound: Could not find sound definition with name ${t}.`);return new o(i,e)}constructor(t,e){super(t,e),this.ƀlj=new actionsLib.Variable(0),this.time=this.ƀlj.notifier,this.ƀkt=S.context.currentTime-this.ƀkr,this.ƀlj.value=this.ƀkr,m.beforeSceneUpdateAction.subscribe(()=>{this.ƀlj.value=S.context.currentTime-this.ƀkt;}).attach(this),this.ƀfg.disconnect(),this.ƀjz(e?.fade?helpersLib.NumberHelper.clamp(e.fade,0,1):0),this.ƀka(e?.muffle?helpersLib.NumberHelper.clamp(e.muffle,0,1):0),this.ƀfg.connect(Y.ƀfv.ƀkh);}ƀjz(t=0){this.ƀdj=S.context.createGain(),this.ƀdj.gain.value=1-t,this.ƀdi=new I(this.ƀdj.gain,"value",{duration:500,animation:x.lineer,reAnimateHandling:exports.ReAnimateHandlingType.CompletePrevious,completionHandling:exports.AnimationsCompletionHandlingType.StayInCurrentState}),this.ƀfg.connect(this.ƀdj),this.ƀfg=this.ƀdj;}ƀka(t=0){this.ƀhe=S.context.createBiquadFilter(),this.ƀhe.type="highshelf",this.ƀhe.frequency.value=Ns,this.ƀhe.gain.value=t*Oe,this.ƀhf=new I(this.ƀhe.gain,"value",{duration:500,animation:x.lineer,reAnimateHandling:exports.ReAnimateHandlingType.CompletePrevious,completionHandling:exports.AnimationsCompletionHandlingType.StayInCurrentState}),this.ƀfg.connect(this.ƀhe),this.ƀfg=this.ƀhe;}close(){return this.ƀbb?this.onDestroy():(this.ƀbb=true,this.fade(1,K).notIdle().chain(this).tap(()=>this.destroy()).chainToRoot())}notifyOnTime(t){return this.time.value>t?actionsLib.SingleEvent.createDestroyed():actionsLib.SingleEvent.create(e=>{let i=this.time.filter(r=>r>=t).tap(()=>e()).attach(this);return ()=>i.destroy()})}setFade(t){t=helpersLib.NumberHelper.clamp(t,0,1),this.ƀdi.set({value:1-t});}fade(t,e=500){t=helpersLib.NumberHelper.clamp(t,0,1);let i=t>1-this.ƀdj.gain.value;return e===0?(this.ƀdi.set({value:1-t}),actionsLib.SingleEvent.instant()):this.ƀdi.animate({value:1-t},{duration:e,animation:i?x.easeOut:x.easeIn}).chain(this)}setMuffle(t){t=helpersLib.NumberHelper.clamp(t,0,1),this.ƀhf.set({value:t*Oe});}muffle(t,e=500){return t=helpersLib.NumberHelper.clamp(t,0,1),e===0?(this.ƀhf.set({value:t*Oe}),actionsLib.SingleEvent.instant()):this.ƀhf.animate({value:t*Oe},{duration:e}).chain(this)}destroy(){this.destroyed||(this.ƀdj.disconnect(),this.ƀhe.disconnect()),super.destroy();}};var ie=class o extends actionsLib.IDAttachable{static{h(this,"Music");}static createByName(t,e){let i=g.setupOptions.soundDefinitions[t];if(!i)throw new Error(`AdvancedSound: Could not find sound definition with name ${t}.`);return new o(i,e)}get time(){switch(this.ƀkk.value.type){case "paused":return this.ƀkk.value.value.time;case "playing":return this.ƀkk.value.value.time.value;default:{this.ƀkk.value;throw new Error}}}get volume(){return this.ƀkk.value.value.volume}set volume(t){this.setVolume(t);}setVolume(t){return this.ƀkk.value.value.volume=t,this}constructor(t,e){super(),this.ƀhw={stopPlayingOnPause:true,...e},this.ƀkj=t.id;let i;if(this.ƀhw.stopPlayingOnPause&&g.pause.value)i={type:"paused",value:{time:0,volume:1}};else {let r=new ht(t,this.ƀhw).attach(this);r.ƀlt(),i={type:"playing",value:r};}this.ƀkk=new actionsLib.Variable(i),this.ƀhw.stopPlayingOnPause&&(this.ƀib=g.pause.subscribe(r=>this.ƀfb(r)).attach(this));}notifyOnTime(t){return actionsLib.SingleEvent.create(e=>{let i=this.ƀkk.asyncDropOngoing((r,s)=>{switch(r.type){case "paused":s.drop();break;case "playing":return r.value.notifyOnTime(t);default:{throw new Error}}}).toSingleEvent().tap(()=>e()).attach(this);return ()=>i.destroy()})}close(){return this.ƀbb?this.onDestroy():(this.ƀbb=true,this.ƀib?.destroy(),actionsLib.SingleEvent.instant().async(()=>actionsLib.ActionLib.all([this.ƀkk.value.type==="playing"?this.ƀkk.value.value.close():actionsLib.SingleEvent.instant(),this.ƀdk?.onDestroy()??actionsLib.SingleEvent.instant()]),"tap").chain(this).tap(()=>this.destroy()).chainToRoot())}ƀfb(t){if(t){if(this.ƀkk.value.type==="playing"){let e=this.ƀkk.value.value;this.ƀkk.value={type:"paused",value:{time:e.time.value,volume:e.volume}},this.ƀdk=e,actionsLib.ActionLib.all([e.fade(1,K),e.muffle(1,K)]).tap(()=>{this.ƀdk=void 0,e.destroy();}).attach(this);}}else if(this.ƀkk.value.type==="paused"){let{volume:e,time:i}=this.ƀkk.value.value,r=ht.createByName(this.ƀkj,{volume:e,time:i,fade:1,muffle:1}).attach(this);r.ƀlt(),actionsLib.ActionLib.all([r.fade(0,K),r.muffle(0,K)]).attach(this),this.ƀkk.value={type:"playing",value:r};}}};var li=class extends actionsLib.IDAttachable{static{h(this,"MusicPlayer");}get time(){return this.ƀiw?this.ƀiw.time:0}get volume(){return this.ƀmd}set volume(t){this.setVolume(t);}setVolume(t){return this.ƀmd=t,this.ƀiw&&(this.ƀiw.volume=t),this.ƀia&&(this.ƀia.volume=t),this}constructor(t){super(),this.ƀmd=1,this.ƀhw={stopPlayingOnPause:true,playWhenPaused:void 0,volume:1,...t},this.ƀmd=this.ƀhw.volume,this.ƀhw.playWhenPaused&&this.ƀkc(this.ƀhw.playWhenPaused);}play(t){if(this.ƀbb)throw new Error("Play is called while music player is destroyed.");return this.ƀco=t,actionsLib.SingleEvent.instant().async(()=>{let e=this.ƀiw;if(e)return this.ƀiw=void 0,e.close()}).map(()=>{if(this.ƀco===t)return this.ƀiw=ie.createByName(t,{stopPlayingOnPause:this.ƀhw.stopPlayingOnPause,volume:this.ƀmd}).attach(this),this.ƀiw}).chain(this)}stop(){return actionsLib.SingleEvent.instant().async(()=>{let t=this.ƀiw;if(t)return t.close().tap(()=>{t===this.ƀiw&&(this.ƀiw=void 0);})}).chain(this)}close(){return this.ƀbb?this.onDestroy():(this.ƀbb=true,this.ƀib?.destroy(),actionsLib.SingleEvent.instant().async(()=>actionsLib.ActionLib.all([this.ƀiw?.close()??actionsLib.SingleEvent.instant(),this.ƀia?.close()??actionsLib.SingleEvent.instant()]),"tap").chain(this).tap(()=>this.destroy()).chainToRoot())}ƀkc(t){this.ƀib=g.pause.toSequence().asyncDropOngoing(e=>e&&m.wait(K).map(()=>e)).tap(e=>{if(e)this.ƀia=ht.createByName(t,{fade:1,volume:this.ƀmd}).attach(this),this.ƀia.fade(0);else if(this.ƀia){let i=this.ƀia;this.ƀia.fade(1).tap(()=>i.destroy()).attach(this),this.ƀia=void 0;}}).attach(this);}};var ci=class extends d{static{h(this,"Placeholder");}constructor(t){super(),this.ƀir=new F__namespace.Graphics,this.ƀir.rect(0,0,t.x,t.y).fill({color:0,alpha:1e-9}),this.ƀip.addChild(this.ƀir);}destroy(){this.destroyed||(super.destroy(),this.ƀir.destroy());}};var Nt=class{static{h(this,"TextStyleConverter");}static getPixiTextStyle(t){let e={color:helpersLib.ColorHelper.white,align:"center",fontFamily:"Arial",fontStyle:"normal",fontSize:18,lineHeight:void 0,wordWrapWidth:void 0,lineThrough:false,...t},i=t?.dropShadow===true?{}:t?.dropShadow,r={};if(i){let s={blur:4,angle:helpersLib.Radian.get60,distance:10,color:helpersLib.ColorHelper.black,alpha:.5,...i};r={dropShadow:{blur:s.blur,angle:s.angle.value,distance:s.distance,color:helpersLib.ColorHelper.rgbToHex(s.color),alpha:s.alpha}};}return helpersLib.JsonHelper.removeUndefinedProperties({fontFamily:e.fontFamily,fill:helpersLib.ColorHelper.rgbToHex(e.color),align:e.align,fontSize:e.fontSize,fontStyle:e.fontStyle,lineHeight:e.lineHeight,wordWrapWidth:e.wordWrapWidth,wordWrap:e.wordWrapWidth!==void 0,lineThrough:e.lineThrough,...r})}};var Be=class{static{h(this,"RichTextDataInConverter");}static process(t,e){let i=new Set(e.styles?Object.keys(e.styles):[]),r=scriptEngineLib.RichTextSeparator.process(t,i),s=this.ƀfr(r,e),n=this.ƀs(s);return this.ƀkm(n)}static ƀfr(t,e){let i=new Map,r=new Map,s=h((a,l)=>{if(r.has(l))return r.get(l);let c=Nt.getPixiTextStyle(a);return r.set(l,c),c},"GetPixiStyle");return t.map(a=>{let{style:l,cacheKey:c}=this.ƀdz(a.tags,e,i),p=s(l,c),y=F__namespace.CanvasTextMetrics.measureText(" ",new F__namespace.TextStyle(p),void 0,false);return {text:a.text,cacheKey:c,style:l,pixiStyle:p,spaceWidth:y.width}})}static ƀdz(t,e,i){let r=t.join("+");if(i.has(r))return {style:i.get(r),cacheKey:r};let s=this.ƀbf(t,e);return i.set(r,s),{style:s,cacheKey:r}}static ƀbf(t,e){let i={...e.default};for(let l of t)e.styles&&e.styles[l]&&(i={...i,...e.styles[l]});let{wordWrapWidth:r,align:s,dropShadow:n,...a}=i;return a}static ƀs(t){let e=[],i=[];return t.forEach((r,s)=>{r.text.split(/\r?\n/).forEach((a,l)=>{l>0&&(e.push(i),i=[]),i.push({text:a,cacheKey:r.cacheKey,style:r.style,pixiStyle:r.pixiStyle,spaceWidth:r.spaceWidth});});}),e.push(i),e}static ƀkm(t){let e=[];return t.forEach(i=>{if(i.length===0)throw new Error("Internal Error: Line is unexpectedly empty");let r=i.flatMap(s=>this.ƀkn(s.text).map(a=>{let l=new F__namespace.TextStyle(s.pixiStyle),c=F__namespace.CanvasTextMetrics.measureText(a,l,void 0,false);return {text:a,whitespace:a.trim()==="",style:{cacheKey:s.cacheKey,style:s.style,pixiStyle:l,height:c.height,ascent:c.fontProperties.ascent,descent:c.fontProperties.descent,width:c.width,spaceWidth:s.spaceWidth}}}));e.push(r);}),e}static ƀkn(t){if(t==="")return [""];let e=[],i="",r=t[0]===" ";for(let s=0;s<t.length;s++){let n=t[s],a=n===" ";a===r?i+=n:(e.push(i),i=n,r=a);}return i&&e.push(i),e}};var Ge=class{static{h(this,"RichTextTypewriter");}get lineIsEmpty(){return this.ƀcm.length===0}get remainingWidth(){return this.ƀmf-this.ƀcp}constructor(t,e){this.ƀmf=t,this.ƀgj=[],this.ƀcm=[],this.ƀcp=0,this.ƀgi=new helpersLib.Vector(0,0),this.ƀcn=0;let i={rectangleCutOption:void 0,horizontalAlignment:"left",verticalAlignment:"bottom",...e};if(this.ƀfj=i.horizontalAlignment,this.ƀlx=i.verticalAlignment,i.rectangleCutOption){if(i.rectangleCutOption.position.x<0||i.rectangleCutOption.position.x>=this.ƀmf||i.rectangleCutOption.position.y<0)throw new Error("Rectangle cut position is out of bounds");this.ƀcq={direction:i.rectangleCutOption.direction,rectangle:this.ƀbs(i.rectangleCutOption)};}}isSpaceAvailable(t){let e=Math.max(this.ƀcn,t.y),i=this.ƀei(this.ƀgi.y,this.ƀgi.y+e);return this.ƀcp+t.x<=i}insertWord(t){let e=Math.max(this.ƀcn,t.style.height);if(this.ƀcm.length===0){let i=this.ƀej(this.ƀgi.y,this.ƀgi.y+e);this.ƀgi=new helpersLib.Vector(i,this.ƀgi.y),this.ƀcp=this.ƀgi.x;}this.ƀcm.push({chunk:t,position:new helpersLib.Vector(this.ƀcp,this.ƀgi.y)}),this.ƀcn=e,this.ƀcp+=t.style.width;}newLine(){let t=this.ƀgi.y+this.ƀcn,e=this.ƀej(t,t);this.ƀdm(),this.ƀgi=new helpersLib.Vector(e,t),this.ƀcp=this.ƀgi.x,this.ƀcn=0;}print(){return this.ƀdm(),this.ƀgj}ƀdm(){this.ƀcm.length>0&&(this.ƀgj.push(this.ƀg(this.ƀcm)),this.ƀcm=[]);}ƀg(t){return t=this.ƀlz(t),t=this.ƀfl(t),t}ƀfl(t){if(this.ƀfj==="left")return t;let e=this.ƀgi.y+this.ƀcn,i=this.ƀej(this.ƀgi.y,e),s=this.ƀei(this.ƀgi.y,e)-i,n=Math.min(s,t.reduce((l,c)=>l+c.chunk.style.width,0)),a;return this.ƀfj==="center"?a=(s-n)/2:a=s-n,t.map(l=>(l={chunk:l.chunk,position:new helpersLib.Vector(l.position.x+a,l.position.y)},l))}ƀlz(t){let e=Math.max(...t.map(r=>r.chunk.style.ascent)),i=Math.max(...t.map(r=>r.chunk.style.descent));return t.map(r=>{let s;switch(this.ƀlx){case "top":s=i-r.chunk.style.descent;break;case "center":s=(i-r.chunk.style.descent+e-r.chunk.style.ascent)*.5;break;case "bottom":s=e-r.chunk.style.ascent;break;default:{this.ƀlx;throw new Error}}return r={chunk:r.chunk,position:new helpersLib.Vector(r.position.x,r.position.y+s)},r})}ƀej(t,e){return this.ƀcq&&(this.ƀcq.direction==="topLeft"||this.ƀcq.direction==="bottomLeft")&&(this.ƀcq.rectangle.isPointInside(new helpersLib.Vector(0,t),{includeEdges:false})||this.ƀcq.rectangle.isPointInside(new helpersLib.Vector(0,e),{includeEdges:false}))?this.ƀcq.rectangle.bottomRight.x:0}ƀei(t,e){return this.ƀcq&&(this.ƀcq.direction==="topRight"||this.ƀcq.direction==="bottomRight")&&(this.ƀcq.rectangle.isPointInside(new helpersLib.Vector(this.ƀmf,t),{includeEdges:false})||this.ƀcq.rectangle.isPointInside(new helpersLib.Vector(this.ƀmf,e),{includeEdges:false}))?this.ƀcq.rectangle.topLeft.x:this.ƀmf}ƀbs(t){let e,i;switch(t.direction){case "topRight":e=new helpersLib.Vector(t.position.x,-1/0),i=new helpersLib.Vector(1/0,t.position.y);break;case "topLeft":e=new helpersLib.Vector(-1/0,-1/0),i=t.position;break;case "bottomRight":e=t.position,i=new helpersLib.Vector(1/0,1/0);break;case "bottomLeft":e=new helpersLib.Vector(-1/0,t.position.y),i=new helpersLib.Vector(t.position.x,1/0);break;default:{t.direction;throw new Error}}return new helpersLib.Rectangle(e,i)}};var _e=class{static{h(this,"ConsistentSpaceTextWrapper");}static wrapText(t,e){return t.forEach(i=>{i.forEach((r,s)=>{if(e.isSpaceAvailable(new helpersLib.Vector(r.style.width,r.style.height)))if(r.whitespace&&s===i.length-2){let n=i[i.length-1];e.isSpaceAvailable(new helpersLib.Vector(n.style.width+r.style.width,n.style.height))?e.insertWord(r):this.ƀmg(r,e);}else e.insertWord(r);else e.lineIsEmpty?e.insertWord(r):r.whitespace?this.ƀmg(r,e):(e.newLine(),e.insertWord(r));}),e.newLine();}),e.print()}static ƀmg(t,e){let i=Math.max(0,Math.floor(e.remainingWidth/t.style.spaceWidth)),r=Math.max(0,Math.min(i,t.text.length-1));if(r>0){let n={text:" ".repeat(r),whitespace:true,style:{...t.style,width:r*t.style.spaceWidth}};e.insertWord(n);}e.newLine();let s=t.text.length-r-1;if(s>0){let n={text:" ".repeat(s),whitespace:true,style:{...t.style,width:s*t.style.spaceWidth}};e.insertWord(n);}}};var Ve=class{static{h(this,"RichTextDataOutConverter");}static process(t){return t=this.ƀgz(t),t=this.ƀln(t),this.ƀax(t)}static ƀgz(t){return t.map(e=>{let i=[],r,s=true;return e.forEach(n=>{if(!r||r.chunk.style.cacheKey!==n.chunk.style.cacheKey)r&&i.push(r),r=n,s=n.chunk.whitespace;else {let a=r.chunk.text+n.chunk.text;s=n.chunk.whitespace&&s,r={chunk:{text:a,whitespace:s,style:{...r.chunk.style,width:r.chunk.style.width+n.chunk.style.width}},position:r.position};}}),r&&i.push(r),i})}static ƀln(t){return t.map(e=>{if(e.length===0)return [];let i=e.pop();if(!i.chunk.whitespace||i.chunk.text===""){let r=i.chunk.text.length,s=i.chunk.text.trimEnd();r!==s.length?e.push({chunk:{text:s,whitespace:false,style:{...i.chunk.style,width:i.chunk.style.width-(r-s.length)*i.chunk.style.spaceWidth}},position:i.position}):e.push(i);}return e})}static ƀax(t){return t.flatMap(e=>e.map(i=>({text:i.chunk.text,style:i.chunk.style.style,position:i.position}))).filter(e=>e.text.trim()!=="")}};var se=class{static{h(this,"RichTextToPlaneText");}static process(t,e){if(e.default.wordWrapWidth===void 0){if(e.default.align==="right"||e.default.align==="center")throw new Error("wordWrapWidth is required for right or center alignment");if(e.rectangleCut&&(e.rectangleCut.direction==="topRight"||e.rectangleCut.direction==="bottomRight"))throw new Error("wordWrapWidth is required for topRight or bottomRight rectangle cut")}let i=Be.process(t,e),r=helpersLib.JsonHelper.removeUndefinedProperties({rectangleCutOption:e.rectangleCut,verticalAlignment:e.verticalAlignment,horizontalAlignment:e.default.align}),s=new Ge(e.default.wordWrapWidth??1/0,r),n=_e.wrapText(i,s);return Ve.process(n)}};var Xs=1,ir=1/Xs,oe=class extends d{static{h(this,"Text");}get ƀlg(){if(!this.ƀlh){let t=new F__namespace.TextStyle(this.ƀit);this.ƀlh=F__namespace.CanvasTextMetrics.measureText(this.ƀlf,t);}return this.ƀlh}get ascent(){return this.ƀlg.fontProperties.ascent}constructor(t,e){super(),this.ƀit=Nt.getPixiTextStyle(e),this.setText(t);}destroy(){this.destroyed||(super.destroy(),!this.ƀis.destroyed&&this.ƀis.destroy());}setAnchor(t){return this.anchor=t,this}get anchor(){return new helpersLib.Vector(this.ƀis.anchor.x,this.ƀis.anchor.y)}set anchor(t){this.ƀi=t,this.ƀis.anchor.set(t.x,t.y),this.ƀjg();}setText(t){return this.ƀlf!==t&&(this.ƀlf=t,this.ƀjd()),this}setColor(t){let e=helpersLib.ColorHelper.rgbToHex(t);return this.ƀit.fill!==e&&(this.ƀit.fill=e,this.ƀjd()),this}ƀjd(){this.ƀis?.destroy(),this.ƀkz?.destroy(),this.ƀkz=void 0,this.ƀlh=void 0;let t=new F__namespace.TextStyle(this.ƀit);this.ƀis=new F__namespace.Text({text:this.ƀlf,style:t}),this.ƀi&&this.ƀis.anchor.set(this.ƀi.x,this.ƀi.y),this.ƀjg(),this.ƀis.scale.set(ir,ir),this.ƀip.addChild(this.ƀis),this.ƀit.lineThrough&&(this.ƀkz=this.ƀe(this.ƀis,this.ƀit.fill),this.ƀip.addChild(this.ƀkz));}ƀjg(){let t=F__namespace.CanvasTextMetrics.measureText(this.ƀlf,new F__namespace.TextStyle({...this.ƀit,dropShadow:false})),e=-this.ƀis.anchor.x*t.width,i=-this.ƀis.anchor.y*t.height;this.ƀis.boundsArea=new F__namespace.Rectangle(e,i,t.width,t.height);}ƀe(t,e){let i=F__namespace.CanvasTextMetrics.measureText(t.text,t.style),r=Math.max(1,Math.round(i.lineHeight*.07)),s=r%2*.5,n=new F__namespace.Graphics,a=0;return i.lines.forEach((l,c)=>{let p=F__namespace.CanvasTextMetrics.measureText(l,t.style),y=Math.round(a+(p.fontProperties.ascent-p.fontProperties.descent)*.6+p.fontProperties.descent)+s,w=0;t.style.align==="center"?w=0+(t.width-p.width)*.5:t.style.align==="right"&&(w=0+t.width-p.width),w=Math.floor(w),n.moveTo(Math.floor(w),y),n.lineTo(Math.floor(w+p.width),y),a+=p.lineHeight;}),n.stroke({width:r,color:e}),n}};var pi=class extends d{static{h(this,"RichText");}constructor(t,e){super(),se.process(t,e).forEach(r=>new oe(r.text,r.style).setPosition(r.position).displayParent(this).attach(this));}};var ui=class extends d{static{h(this,"UpdatableContainer");}},di=class extends d{static{h(this,"DisplayObjectArray");}constructor(t,e){super(),this.ƀby=t,this.ƀcu=new Map,this.ƀhw={trackBy:h((i,r)=>r,"trackBy"),positioning:{direction:"vertical",spacing:0},...e};}set(t){let e=new Set(this.ƀcu.keys()),i=0;t.forEach((r,s)=>{let n=this.ƀhw.trackBy(r,s),a;this.ƀcu.has(n)?(a=this.ƀcu.get(n),e.delete(n),a.update(r)):(a=this.ƀby(r).displayParent(this).attach(this),this.ƀcu.set(n,a)),this.ƀhw.positioning.direction==="horizontal"?(a.x=i,i+=a.size.x+this.ƀhw.positioning.spacing):(a.y=i,i+=a.size.y+this.ƀhw.positioning.spacing);}),e.forEach(r=>{this.ƀcu.get(r).destroy(),this.ƀcu.delete(r);});}};var ne=class o extends d{static{h(this,"MenuUI");}static{this.ƀfx=actionsLib.Reducer.createExistenceChecker();}static{this.isAnyMenuTransitioning=this.ƀfx.notifier;}constructor(t,e){super(),this.ƀho=new actionsLib.SingleAction,this.onCreate=this.ƀho.notifier,this.ƀhq=new actionsLib.SingleAction,this.onOpen=this.ƀhq.notifier,this.ƀhl=new actionsLib.SingleAction,this.onClose=this.ƀhl.notifier,this.ƀbb=false;let i={closeOnBackgroundClick:true,appearAnimationDuration:150,backgroundDarkeningRatio:.3,...e};this.setAlpha(0),this.ƀp=new I(this,"alpha",{animation:x.easeInOutCubic,duration:i.appearAnimationDuration,reAnimateHandling:exports.ReAnimateHandlingType.CompletePrevious,completionHandling:exports.AnimationsCompletionHandlingType.StayInCurrentState});let r=R.createRectangle(new helpersLib.Vector(1,1),helpersLib.ColorHelper.black).toSprite({cache:true}).setAlpha(i.backgroundDarkeningRatio).setInteractive(true).displayParent(this).attach(this);this.ƀgx=J.createByName(t).setPosition(new helpersLib.Vector(0,0)).setInteractive(true).displayParent(this).attach(this),g.instance.screenSize.subscribe(n=>{r.aspectRatio=n.x/n.y,r.scale=Math.max(n.x,n.y),r.setPosition(helpersLib.Vector.zero,{holdFrom:helpersLib.Vector.half}),this.setPosition(n.multiplyNumber(.5));}).attach(this),this.ƀho.resolve();let s=o.ƀfx.effect().attach(this);this.ƀp.animate({alpha:1}).chain(this).tap(()=>{this.ƀhq.resolve(),s.destroy(),i.closeOnBackgroundClick&&r.on(exports.ContainerEventType.Click).take(1).tap(()=>this.close()).attach(this);}).attachToRoot();}getBoundingMask(){return this.ƀgx.getBoundingMask()}close(){if(!this.ƀbb){this.ƀbb=true;let t=o.ƀfx.effect().attach(this);this.ƀp.animate({alpha:0}).chain(this).map(()=>{this.ƀhl.resolve(),t.destroy(),this.destroy();}).chainToRoot();}return this.onClose.toSingleEvent()}};var mi=class extends wt{static{h(this,"MenuEntity");}static subscribeIsOpen(){return actionsLib.ActionLib.merge(this.continuesSubscription().map(t=>t.type==="open"),actionsLib.SingleEvent.instant(this.getInstance()!==void 0))}constructor(t){super(),this.ƀhw=t,queueMicrotask(()=>{if(!this.ƀgy)throw new Error("MenuEntity: MenuEntity has to have a MenuView.")});}ƀjf(t){this.ƀgy=t,this.ƀgy.onClose.subscribe(()=>this.destroy()).attach(this);}onCreate(){return this.ƀgy.onCreate.toSingleEvent()}onOpen(){return this.ƀgy.onOpen.toSingleEvent()}onClose(){return this.ƀgy.onClose.toSingleEvent()}close(){return this.ƀgy.close()}};var yi=class extends U{static{h(this,"MenuView");}constructor(t,e,i){super();let r=helpersLib.JsonHelper.removeUndefinedProperties({appearAnimationDuration:i.appearAnimationDuration,backgroundDarkeningRatio:i.backgroundDarkeningRatio,closeOnBackgroundClick:t.ƀhw.closeOnBackgroundClick}),s=new ne(e,r).displayParent(g.camera.layers.foregroundScreen).attach(this);t.ƀjf(s);let n=new actionsLib.SingleAction;s.onCreate.subscribe(()=>n.resolve(s)).attach(this),this.onCreate=n.notifier,this.onOpen=s.onOpen.notifier,this.onClose=s.onClose.notifier;}};var so=.65,oo=.01,Ne=class{static{h(this,"SmoothScroller");}get scrollHeight(){return this.ƀjp}get contentSize(){return this.ƀbm.size.ceil()}constructor(t,e,i,r){this.ƀbm=t,this.ƀv=e,this.ƀhy=i,this.ƀkg=r,this.ƀfu=false,this.ƀjp=e-i*2,this.ƀbm.y=i,this.ƀla=i;}onWheel(t){this.setTarget(this.ƀla-t*so);}scrollToTop(){this.setTarget(1/0);}scrollToBottom(){this.setTarget(-1/0);}setTarget(t){this.ƀla=helpersLib.NumberHelper.clamp(t,this.ƀv-this.ƀhy-this.contentSize.y,this.ƀhy);}jumpToTarget(){this.ƀbm.y=this.ƀla;}update(t){let e=this.contentSize;if(e.y<=this.ƀjp){switch(this.ƀkg){case "start":this.ƀla=this.ƀhy;break;case "center":this.ƀla=(this.ƀv-e.y)*.5;break;case "end":this.ƀla=this.ƀv-e.y-this.ƀhy;break;default:{this.ƀkg;throw new Error}}this.ƀfu||(this.ƀbm.y=this.ƀla);}this.ƀfu=true;let i=this.ƀla-this.ƀbm.y;this.ƀbm.y=this.ƀbm.y+i*oo*t;}};var ao=15,gi=class extends d{static{h(this,"ScrollAreaUI");}get contentAreaSize(){return this.ƀbn}get contentSize(){return this.ƀjq.contentSize}constructor(t,e={}){super();let i={padding:ao,smallContentAlign:"start",...e};if(i.padding<0)throw new Error("The padding of the scroll mask cannot be lower than '0'");if(i.padding>t.y*.5)throw new Error("The padding of the scroll mask cannot be higher than half of the size of the area");let r=new d().displayParent(this).attach(this);new Pt(r,t,i.padding).attach(this);let s=new F__namespace.Graphics;s.rect(0,0,t.x,t.y).fill({color:0,alpha:1e-9}),r.ƀip.addChild(s);let n=new d().displayParent(r).attach(this);this.ƀjq=new Ne(n,t.y,i.padding,i.smallContentAlign),this.ƀbn=new helpersLib.Vector(t.x,this.ƀjq.scrollHeight),s.eventMode="dynamic",s.addEventListener("wheel",a=>{this.ƀjq.onWheel(a.deltaY);}),n.setInteractive(true),n.ƀip.addEventListener("wheel",a=>{this.ƀjq.onWheel(a.deltaY);}),m.afterSceneUpdateAction.subscribe(a=>this.ƀjq.update(a.delta)).attach(this),this.addChildTo=n;}scrollToTop(t){this.ƀjq.scrollToTop(),t?.instant&&this.ƀjq.jumpToTarget();}scrollToBottom(t){this.ƀjq.scrollToBottom(),t?.instant&&this.ƀjq.jumpToTarget();}};var ho=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},_=class extends wt{static{h(this,"CameraEntity");}constructor(){super(...arguments),this.position=new actionsLib.Variable(helpersLib.Vector.zero),this.offset=new actionsLib.Variable(helpersLib.Vector.zero),this.targetPosition=new actionsLib.Variable(void 0),this.focusingNewTargetInfo=new actionsLib.Variable(void 0);}};_=ho([gt()],_);var lo=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},co=1500,He=class{static{h(this,"CameraService");}createCamera(){return new _().attachToRoot()}getCameraPosition(){let t=_.getInstanceOrFail();return helpersLib.Vector.fromTo(t.offset.value,t.position.value)}setPosition(t){let e=_.getInstanceOrFail();e.targetPosition.value=t;}setTransition(t){let e=_.getInstanceOrFail();e.focusingNewTargetInfo.value={time:g.time,duration:t?.duration??co,position:e.position.value,roundPosition:t?.roundPosition??false,roundPositionThreshold:t?.roundPositionThreshold??0,focusingAnimation:t?.animation??exports.FocusingAnimation.Instant};}update(t,e){let i=_.getInstanceOrFail(),r=i.targetPosition.value;r&&(i.focusingNewTargetInfo.value?this.ƀgc(i,r,t):i.position.value=r);}ƀgc(t,e,i){let r=t.focusingNewTargetInfo.value;if(r.focusingAnimation===exports.FocusingAnimation.Instant)this.ƀbg(t,e);else {let s=(i-r.time)/r.duration;if(s>=1)this.ƀbg(t,e);else {let n;r.focusingAnimation===exports.FocusingAnimation.EaseInOut?n=V.easeInOut(s):r.focusingAnimation===exports.FocusingAnimation.EaseOut?n=V.easeOut(s):n=1;let a=r.position.lerp(e,n);r.roundPosition&&(Math.abs(a.x-r.position.x)>=r.roundPositionThreshold&&(a=new helpersLib.Vector(Math.round(a.x),a.y)),Math.abs(a.y-r.position.y)>=r.roundPositionThreshold&&(a=new helpersLib.Vector(a.x,Math.round(a.y)))),t.position.value=a;}}}ƀbg(t,e){t.position.value=e,t.focusingNewTargetInfo.value=void 0;}};He=lo([u()],He);var po=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},uo=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},xi=class{static{h(this,"CameraController");}constructor(t){this.ƀat=t;}createCamera(){return this.ƀat.createCamera().id}update(t,e){this.ƀat.update(t,e);}setPosition(t){this.ƀat.setPosition(t);}setTransition(t){this.ƀat.setTransition(t);}getCameraPosition(){return this.ƀat.getCameraPosition()}};xi=po([tt(exports.CameraGateway),uo("design:paramtypes",[He])],xi);var je=class{static{h(this,"PositionConversionHelper");}static includeScaleInScreenPosition(t,e,i){if(e!==1){let r=helpersLib.Vector.fromTo(i,t).multiplyNumber(1/e);return i.add(r)}else return t}};var mo=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},yo=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},It=class extends U{static{h(this,"CameraView");}constructor(t){super(),this.ƀdd=t,this.ƀkp=(()=>{let e=new d().attach(this);return e.ƀip=g.instance.ƀio.stage,e})(),this.ƀjk=new d().setAlpha(0).displayParent(this.ƀkp).attach(this),this.ƀaf=R.createRectangle(new helpersLib.Vector(1,1),helpersLib.ColorHelper.black).toSprite({cache:true}).setAlpha(0).displayParent(this.ƀkp).attach(this),this.ƀac=new d().displayParent(this.ƀjk).attach(this),this.ƀas=new d().displayParent(this.ƀjk).attach(this),this.ƀdp=new d().setSortableChildren(true).displayParent(this.ƀjk).attach(this),this.ƀar=new d().setSortableChildren(true).displayParent(this.ƀas).attach(this),this.ƀdo=new d().setSortableChildren(true).setRenderGroup().setZIndex(20).displayParent(this.ƀar).attach(this),this.ƀgp=new d().setSortableChildren(true).setRenderGroup().setZIndex(10).displayParent(this.ƀar).attach(this),this.ƀab=new d().setRenderGroup().setZIndex(0).displayParent(this.ƀar).attach(this),this.ƀh=new I(this.ƀjk,"alpha",{duration:500,animation:x.easeInOutCubic,reAnimateHandling:exports.ReAnimateHandlingType.CompletePrevious,completionHandling:exports.AnimationsCompletionHandlingType.StayInCurrentState}),this.ƀag=new I(this.ƀaf,"alpha",{duration:500,animation:x.easeInOutCubic,reAnimateHandling:exports.ReAnimateHandlingType.CompletePrevious,completionHandling:exports.AnimationsCompletionHandlingType.StayInCurrentState}),g.instance.screenSize.subscribe(e=>{this.ƀaf.aspectRatio=e.x/e.y,this.ƀaf.scale=Math.max(e.x,e.y),this.ƀaf.setPosition(helpersLib.Vector.zero,{holdFrom:helpersLib.Vector.zero});}).attach(this),this.ƀdd.position.subscribe(e=>{this.ƀar.position=this.ƀbt(e);}).attach(this),this.ƀdd.offset.subscribe(e=>{this.ƀas.position=e;}).attach(this),this.ƀag.set({alpha:0}),this.ƀh.set({alpha:0});}screenPositonToStagePosition(t){let e=je.includeScaleInScreenPosition(t,this.ƀkp.scale,g.instance.screenSizeCenter.value);return new helpersLib.Vector(e.x-this.ƀar.position.x-this.ƀas.position.x,e.y-this.ƀar.position.y-this.ƀas.position.y)}getLayers(){return {backgroundScreen:this.ƀac.id,background:this.ƀab.id,main:this.ƀgp.id,foreground:this.ƀdo.id,foregroundScreen:this.ƀdp.id}}appear(t,e,i){switch(e){case "alpha":return this.ƀag.set({alpha:0}),this.ƀh.set({alpha:t?0:1}),actionsLib.SingleEvent.instant().async(()=>i>0&&m.wait(i),"tap").async(()=>this.ƀh.animate({alpha:t?1:0})).chain(this);case "pureBlack":return this.ƀh.set({alpha:1}),this.ƀag.set({alpha:t?1:0}),actionsLib.SingleEvent.instant().async(()=>i>0&&m.wait(i),"tap").async(()=>this.ƀag.animate({alpha:t?0:1})).chain(this);case "instant":return this.ƀh.set({alpha:t?1:0}),this.ƀag.set({alpha:t?0:1}),actionsLib.SingleEvent.instant();default:{throw new Error}}}ƀbt(t){return helpersLib.Vector.fromTo(t,g.instance.screenSizeCenter.value)}};It=mo([ti({entity:_}),yo("design:paramtypes",[_])],It);var wo=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},bi=class{static{h(this,"CameraViewController");}getLayers(){let t=_.getInstanceOrFail().id;return It.getInstanceOrFail(t).getLayers()}appear(t,e,i){let r=_.getInstanceOrFail().id;return It.getInstanceOrFail(r).appear(t,e,i)}screenPositonToStagePosition(t){let e=_.getInstanceOrFail().id;return It.getInstanceOrFail(e).screenPositonToStagePosition(t)}};bi=wo([tt(Rt)],bi);var xo=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},vo=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)};exports.KeyboardService=class Pi{static{h(this,"KeyboardService");}constructor(){this.ƀge=new actionsLib.Action,this.keyPressed=this.ƀge.notifier,this.ƀgf=new actionsLib.Action,this.keyReleased=this.ƀgf.notifier,this.ƀgl=new Set,this.ƀgk=new Set,window.addEventListener("keydown",t=>{this.ƀgl.add(t.code),this.ƀgk.add(t.code),!t.repeat&&this.ƀge.trigger({key:t.key,code:t.code});}),window.addEventListener("keyup",t=>{this.ƀgl.delete(t.code),this.ƀgf.trigger({key:t.key,code:t.code});}),window.addEventListener("blur",()=>{this.ƀgl.clear();}),m.afterSceneUpdateAction.subscribe(()=>this.ƀgk.clear()).attachToRoot();}isKeyDown(t,e){return (e?.onlyPressedThisFrame?this.ƀgk:this.ƀgl).has(t)}};exports.KeyboardService=xo([u(),vo("design:paramtypes",[])],exports.KeyboardService);var bo=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},Po=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)};exports.MouseService=class le{static{h(this,"MouseService");}constructor(){this.ƀft=new actionsLib.Variable(false),this.initialMouseMovementHappened=this.ƀft.notifier,this.ƀkq=new actionsLib.Variable(helpersLib.Vector.zero,{notifyOnChange:true}),this.stagePosition=this.ƀkq.notifier,this.ƀjm=new actionsLib.Variable(helpersLib.Vector.zero,{notifyOnChange:true}),this.screenPosition=this.ƀjm.notifier,this.ƀgo=new actionsLib.Variable(false),this.mainButtonState=this.ƀgo.notifier,this.ƀjr=new actionsLib.Variable(false),this.secondaryButtonState=this.ƀjr.notifier,this.ƀks(),window.addEventListener("pointerdown",t=>{t.button===0?this.ƀgo.value=true:t.button===2&&(this.ƀjr.value=true);},{capture:true}),window.addEventListener("pointerup",t=>{t.button===0?this.ƀgo.value=false:t.button===2&&(this.ƀjr.value=false);},{capture:true}),window.addEventListener("blur",()=>{this.ƀgo.value=false,this.ƀjr.value=false;},{capture:true});}ƀks(){let t=helpersLib.Vector.zero;window.addEventListener("pointermove",e=>{t=new helpersLib.Vector(e.clientX,e.clientY),this.ƀft.value=true;},{capture:true}),m.beforeSceneUpdateAction.subscribe(()=>{this.ƀjm.value=this.ƀba(t);}).attachToRoot();}ƀba(t){let i=g.instance.renderer.canvas.getBoundingClientRect(),r=i.width,s=i.height;if(r<=0||s<=0)return helpersLib.Vector.zero;let n=g.instance.renderer,a=(t.x-i.left)/r*n.screen.width,l=(t.y-i.top)/s*n.screen.height;return a=helpersLib.NumberHelper.clamp(a,0,n.screen.width),l=helpersLib.NumberHelper.clamp(l,0,n.screen.height),new helpersLib.Vector(a,l)}};exports.MouseService=bo([u(),Po("design:paramtypes",[])],exports.MouseService);var So=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},Eo=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)};exports.MouseTargetFocusService=class Si{static{h(this,"MouseTargetFocusService");}get focusedInLastFrame(){return this.ƀdn}get lastFocusedPosition(){return this.ƀgh}constructor(t){this.ƀhc=t,this.ƀhs=new actionsLib.Action,this.onTargetFocus=this.ƀhs.notifier,this.ƀll=0,this.ƀlm=false,this.ƀdn=false,this.ƀgh=void 0,m.beforeSceneUpdateAction.subscribe(e=>this.ƀlp(e.delta)).attachToRoot();}ƀlp(t){if(this.ƀhd){let e=this.ƀep(this.ƀhc.stagePosition.value,this.ƀhd);this.ƀid===void 0?this.ƀid=e:this.ƀaw(e,t);}this.ƀhd=this.ƀhc.stagePosition.value;}ƀaw(t,e){this.ƀid-t>10?(this.ƀll=Math.max(250,this.ƀll),this.ƀlm=true):this.ƀll>1e3&&(this.ƀlm=true);let i=this.ƀll>=300&&this.ƀlm;this.ƀgd(i,t,e);}ƀgd(t,e,i){(t||e>this.ƀid)&&(this.ƀid=e),t?(this.ƀlm=false,this.ƀll=0,this.ƀdn=true,this.ƀgh=this.ƀhc.stagePosition.value,this.ƀhs.trigger(this.ƀgh)):(this.ƀll+=i,this.ƀdn=false);}ƀep(t,e){let i=helpersLib.Vector.fromTo(t,e);return Math.abs(i.x)+Math.abs(i.y)}};exports.MouseTargetFocusService=So([u(),Eo("design:paramtypes",[exports.MouseService])],exports.MouseTargetFocusService);var Ei=10.8,Ti=10.01;exports.PhysicsShapeType=void 0;(function(o){o[o.Point=1]="Point",o[o.Circle=2]="Circle",o[o.Polygon=3]="Polygon",o[o.Rectangle=4]="Rectangle";})(exports.PhysicsShapeType||(exports.PhysicsShapeType={}));var f=class o{static{h(this,"P2JSHelper");}static aabbToBoundingBox(t){return helpersLib.Rectangle.fromRect({topLeft:{x:t.lowerBound[0],y:t.lowerBound[1]},bottomRight:{x:t.upperBound[0],y:t.upperBound[1]}})}static arrayToVector(t){return new helpersLib.Vector(t[0],t[1])}static vectorToArray(t){return [t.x,t.y]}static arePhysicsGroupsCollidable(t,e,i,r){return (t&r)!==0&&(i&e)!==0}static canCollideWith(t,e){return t.shapes.some(i=>e.shapes.some(r=>o.arePhysicsGroupsCollidable(i.collisionGroup,i.collisionMask,r.collisionGroup,r.collisionMask)))}static cloneP2Body(t){let e=new W__default.default.Body({position:t.position,angle:t.angle,type:t.type});return e.shapes=t.shapes,e}};var lt="border";var Oo=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s};exports.PhysicsGateway=class ce extends q(){static{h(this,"PhysicsGateway");}};exports.PhysicsGateway=Oo([u()],exports.PhysicsGateway);var Mo=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},ct=class extends q(){static{h(this,"PhysicsInternalGateway");}};ct=Mo([u()],ct);var b=class o extends ${static{h(this,"PhysicsEntity");}static{this.ƀhx=new Map;}static{this.ƀih=new Map;}static getFromP2BodyID(t){return o.ƀhx.get(t)}static getFromP2BodyIDOrFail(t){let e=o.ƀhx.get(t);if(!e)throw new Error(`PhysicsEntity with p2BodyID ${t} not found`);return e}static getPhysicsInstanceOrFail(t){let e=o.ƀih.get(t);if(!e)throw new Error(`PhysicsEntity with id ${t} not found`);return e}static getPhysicsEntities(){return Array.from(o.ƀih.values())}get area(){return this.ƀu}get mass(){return this.ƀgs}get collisions(){return this.ƀbc}constructor(t,e,i){super(),this.ƀhm=new actionsLib.Action,this.onCollision=this.ƀhm.notifier,this.type="dynamic",this.ƀu=0,this.ƀgs=0,this.ƀbc=[],this.physicsWorldID=t,this.ƀij=P.get(ct);let r=this.ƀij.getMaterial(this.physicsWorldID,e.shapeDefinition.materialName),s=this.ƀij.getMaterialDefinition(this.physicsWorldID,e.shapeDefinition.materialName);if(this.type=i,this.physicsBodyGroup=e.shapeDefinition.group,this.includeInPathfinding=e.includeOnPathfinding,this.ƀii=this.ƀij.getGroupConstant(this.physicsWorldID,this.physicsBodyGroup),this.ƀik=this.ƀij.getMaskConstant(this.physicsWorldID,this.physicsBodyGroup),this.p2Body=this.ƀij.createBody(this.physicsWorldID,e,r,s,this.type),this.ƀu=this.p2Body.getArea(),this.ƀgs=this.p2Body.mass,this.p2Body.position=f.vectorToArray(e.position),this.p2Body.angle=e.rotation.value,!this.ƀij.addBody(this.physicsWorldID,this.p2Body,e.addInEmptySpace,e.shapeDefinition.group,e.includeOnPathfinding))throw new Error("PhysicsEntity was not able to be added to the world!");o.ƀhx.set(this.p2Body.id,this),o.ƀih.set(this.id,this);}destroy(){this.destroyed||(super.destroy(),this.ƀij.removeBody(this.physicsWorldID,this.p2Body),o.ƀhx.delete(this.p2Body.id),o.ƀih.delete(this.id));}canCollideWith(t){return f.arePhysicsGroupsCollidable(this.ƀii,this.ƀik,t.ƀii,t.ƀik)}ƀjt(t){this.ƀbc=t,t.length>0&&this.ƀhm.trigger(t);}};var pe=class extends b{static{h(this,"ImmovablePhysicsEntity");}constructor(t,e){super(t,e,"static"),this.position=f.arrayToVector(this.p2Body.position),this.rotation=new helpersLib.Radian(this.p2Body.angle);}convertToDTO(){return {entityID:this.id,classID:this.classID,position:this.position,rotation:this.rotation,velocity:helpersLib.Vector.zero,rotationalSpeed:0}}};var Ri=class extends ${static{h(this,"MovableEntity");}constructor(){super(),this.position=new actionsLib.Variable(helpersLib.Vector.zero),this.rotation=new actionsLib.Variable(helpersLib.Radian.get0),this.velocity=new actionsLib.Variable(helpersLib.Vector.zero),this.rotationalSpeed=new actionsLib.Variable(0),m.beforeSceneUpdateAction.subscribe(({time:t,delta:e})=>{this.ƀkw(t,e);}).attach(this);}ƀkw(t,e){this.position.value=this.position.value.add(this.velocity.value.multiplyNumber(e)),this.rotation.value=new helpersLib.Radian(this.rotation.value.value+this.rotationalSpeed.value*e);}};var Ii=class extends b{static{h(this,"MovablePhysicsEntity");}constructor(t,e){super(t,e,"dynamic"),this.position=new actionsLib.Variable(helpersLib.Vector.zero),this.rotation=new actionsLib.Variable(helpersLib.Radian.get0),this.velocity=new actionsLib.Variable(helpersLib.Vector.zero),this.rotationalSpeed=new actionsLib.Variable(0),this.ƀfm=false,this.ƀfn=false,this.ƀfp=false,this.ƀfo=false,this.ƀie(),this.ƀgm(),P.get(ct).subscribeToPhysicsStep(t,({time:i,delta:r})=>this.ƀkw(i,r)).attach(this);}convertToDTO(){return {entityID:this.id,classID:this.classID,position:this.position.value,rotation:this.rotation.value,velocity:this.velocity.value,rotationalSpeed:this.rotationalSpeed.value}}ƀkw(t,e){this.ƀfm=true,this.ƀfn=true,this.ƀfp=true,this.ƀfo=true,this.ƀie();}ƀie(){this.position.value=f.arrayToVector(this.p2Body.position),this.rotation.value=new helpersLib.Radian(this.p2Body.angle),this.velocity.value=f.arrayToVector(this.p2Body.velocity),this.rotationalSpeed.value=this.p2Body.angularVelocity;}ƀgm(){this.position.subscribe(t=>{this.ƀfm?this.ƀfm=false:this.p2Body.position=[t.x,t.y];}).attach(this),this.rotation.subscribe(t=>{this.ƀfn?this.ƀfn=false:this.p2Body.angle=t.value;}).attach(this),this.velocity.subscribe(t=>{this.ƀfp?this.ƀfp=false:this.p2Body.velocity=[t.x,t.y];}).attach(this),this.rotationalSpeed.subscribe(t=>{this.ƀfo?this.ƀfo=false:this.p2Body.angularVelocity=t;}).attach(this);}};var _o=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},Vo=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},v=class extends ${static{h(this,"PhysicsWorldEntity");}constructor(t,e,i,r,s,n,a){super(),this.materialDefinitions=new Map,this.physicsBodyGroupToP2Group=new Map,this.physicsBodyGroupToP2Mask=new Map,this.availabilityGridCache=new Map,this.vectorFieldCache=new Map,this.bodiesInContactWith=new Map,this.collisionReports=new Map,this.paused=new actionsLib.Variable(false),this.lastP2Time=new actionsLib.Variable(0),this.onPhysicsStep=new actionsLib.Action,this.mapSize=t,this.mapSizeCenter=this.mapSize.multiplyNumber(.5),this.modifyUpdateCycle=e,this.p2World=i,this.materials=r,this.materialDefinitions=s,this.physicsBodyGroupToP2Group=n,this.physicsBodyGroupToP2Mask=a;}};v=_o([gt(),Vo("design:paramtypes",[helpersLib.Vector,Boolean,W__default.default.World,Map,Map,Map,Map])],v);var Ho=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},X=class{static{h(this,"PhysicsBodyGroupService");}createBodyGroupsAndMasks(t,e){let i=new Map,r=new Map;return t.map((s,n)=>{if(n>31)return console.error("Cannot have more than 32 physics body groups"),{};i.set(s,1<<n),r.set(s,0);}),e.map(([s,n])=>{if(!i.has(s))throw new Error(`Physics body group "${s}" not found`);if(!i.has(n))throw new Error(`Physics body group "${n}" not found`);let a=r.get(s),l=r.get(n),c=i.get(s),p=i.get(n);r.set(s,a|p),r.set(n,l|c);}),{physicsBodyGroupToP2Group:i,physicsBodyGroupToP2Mask:r}}getGroupConstant(t,e){return v.getInstanceByIDOrFail(t).physicsBodyGroupToP2Group.get(e)}getMaskConstant(t,e){return v.getInstanceByIDOrFail(t).physicsBodyGroupToP2Mask.get(e)}canCollide(t,e,i){let r=t.physicsBodyGroupToP2Group.get(e),s=t.physicsBodyGroupToP2Mask.get(e),n=t.physicsBodyGroupToP2Group.get(i),a=t.physicsBodyGroupToP2Mask.get(i);return (s&n)!==0&&(a&r)!==0}};X=Ho([u()],X);var jo=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},Wo=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},$e=class{static{h(this,"AvailabilityGridCacheService");}constructor(t){this.ƀig=t;}getCollidableGrids(t,e){let i=[];return t.availabilityGridCache.forEach((r,s)=>{r.forEach((n,a)=>{this.ƀig.canCollide(t,a,e)&&i.push({grid:n,cellSize:s});});}),i}get(t,e,i){return t.availabilityGridCache.get(e)?.get(i)}set(t,e,i,r){let s=t.availabilityGridCache.get(e);s||(s=new Map,t.availabilityGridCache.set(e,s)),s.set(i,r);}clear(t){t.availabilityGridCache.clear();}};$e=jo([u(),Wo("design:paramtypes",[X])],$e);var Uo=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},$o=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},pt=class{static{h(this,"AvailabilityGridService");}constructor(t,e){this.ƀig=t,this.ƀz=e;}onBodyAdded(t,e,i){e.aabbNeedsUpdate=true,e.updateAABB();let r=f.aabbToBoundingBox(e.aabb);this.ƀz.getCollidableGrids(t,i).forEach(s=>{let n=D.areaToGridArea(r,s.cellSize);s.grid.setArea(n,false);});}findClosestAvailableSpace(t,e,i,r=50){return e.aabbNeedsUpdate=true,e.updateAABB(),Zt.findByConvertingGridSpace(this.getAvilabilityGrid(t,r,i),f.aabbToBoundingBox(e.aabb),r)}getAvilabilityGrid(t,e,i){let r=this.ƀz.get(t,e,i);return r||(r=this.ƀcb(t,e,i),this.ƀz.set(t,e,i,r)),r}ƀcb(t,e,i){let r=new helpersLib.Grid({size:new helpersLib.Vector(Math.floor(t.mapSize.x/e),Math.floor(t.mapSize.y/e)),defaultValue:true});return t.p2World.bodies.forEach(s=>{let n=b.getFromP2BodyIDOrFail(s.id);if(n.includeInPathfinding&&this.ƀig.canCollide(t,n.physicsBodyGroup,i)){let a=this.ƀeg(s,e);r.setArea(a,false);}}),r}ƀeg(t,e){let i=f.aabbToBoundingBox(t.aabb);return D.areaToGridArea(i,e)}};pt=Uo([u(),$o("design:paramtypes",[X,$e])],pt);var Jo=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},Yo=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},Wt=class{static{h(this,"PathFinderService");}constructor(t){this.ƀif=t;}findPathAStar(t,e,i,r,s){s||(s={}),s.neighborType===void 0&&(s.neighborType="orthogonal"),s.gridCellSize===void 0&&(s.gridCellSize=50);let n=v.getInstanceByIDOrFail(t),a,l;helpersLib.Comparator.isNumber(i)?(l=b.getPhysicsInstanceOrFail(i).p2Body,a=f.arrayToVector(l.position)):a=i;let c=D.positionToGridPosition(e,s.gridCellSize),p=D.positionToGridPosition(a,s.gridCellSize),y=this.ƀif.getAvilabilityGrid(n,s.gridCellSize,r);if(l){let C=f.aabbToBoundingBox(l.aabb),Ct=D.areaToGridArea(C,s.gridCellSize);y.setArea(Ct,true);}let w=Qt.findPath(y,c,p,s.neighborType);return w.path=w.path.map(C=>D.gridPositionToPosition(C,s.gridCellSize)),w}findPathDirection(t,e,i,r,s=50){let n=v.getInstanceByIDOrFail(t),a;if(helpersLib.Comparator.isNumber(i)){let w=b.getPhysicsInstanceOrFail(i);a=f.aabbToBoundingBox(w.p2Body.aabb);}else a=new helpersLib.Rectangle(i,i);let l=D.areaToGridArea(a,s),c=JSON.stringify({targetGridArea:l,collidableWithGroup:r}),p=n.vectorFieldCache.get(c);if(!p){let w=this.ƀif.getAvilabilityGrid(n,s,r);p=new qt(l,w),n.vectorFieldCache.set(c,p);}let y=D.positionToGridPosition(e,s);return p.getDirectionToTarget(y)}};Wt=Jo([u(),Yo("design:paramtypes",[pt])],Wt);var Xo=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},Zo=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},Q=class{static{h(this,"TestVisualsService");}constructor(t,e){this.ƀaa=t,this.ƀhz=e;}printPathfindingTestGrid(t,e,i,r,s,n){let a=v.getInstanceByIDOrFail(t);this.ƀaa.getAvilabilityGrid(a,n,r).map((c,p)=>({position:D.gridPositionToPosition(p,n),availability:c})).forEach(c=>{if(c.position.isInsideRectangle(s)){let p=this.ƀhz.findPathDirection(t,c.position,i,r),y;p===void 0?y=R.createRectangleBorders(new helpersLib.Vector(8,8),2,helpersLib.ColorHelper.red).toSprite().displayParent(e).setPosition(c.position,{round:false}).attach(a):y=R.createArrow(25,c.availability?helpersLib.ColorHelper.green:helpersLib.ColorHelper.red).toSprite().displayParent(e).setPosition(c.position,{round:false}).setRotation(p).attach(a),new I(y,"alpha",{duration:1e3,animation:x.easeIn}).animate({alpha:0}).tap(()=>y.destroy()).attach(y);}});}createExplosionDebugVisual(t,e,i,r,s,n=300){let a=new d().displayParent(e).setAlpha(.5).attach(t);R.createCircle(s,helpersLib.ColorHelper.blue).toSprite().displayParent(a).setPosition(r,{round:false}).setAlpha(.5).attach(t),i.forEach(c=>{let p=c.hits.length>0?helpersLib.ColorHelper.red:helpersLib.ColorHelper.white;R.createVector(r,c.line.to,p).toSprite().displayParent(a).attach(t);}),new I(a,"alpha",{duration:n,animation:x.easeIn}).animate({alpha:0}).tap(()=>a.destroy()).attach(a);}createElipticExplosionDebugVisual(t,e,i,r,s,n,a=300){let l=new d().displayParent(e).setAlpha(.5).attach(t);R.createElipse(n,helpersLib.ColorHelper.blue).toSprite().displayParent(l).setPosition(r,{round:false}).setRotation(s).setAlpha(.5).attach(t),i.forEach(p=>{let y=p.hits.length>0?helpersLib.ColorHelper.red:helpersLib.ColorHelper.white;R.createVector(p.line.from,p.line.to,y).toSprite().displayParent(l).attach(t);}),new I(l,"alpha",{duration:a,animation:x.easeIn}).animate({alpha:0}).tap(()=>l.destroy()).attach(l);}createPhysicsEntityShapeVisual(t,e,i){let r=i?.overridePosition??f.arrayToVector(t.position),s=i?.overrideRotation??new helpersLib.Radian(t.angle),n=i?.color??helpersLib.ColorHelper.blue,a=new d().displayParent(e).setPosition(r,{round:false}).setRotation(s).setAlpha(.5).attachToRoot();t.shapes.forEach(c=>{this.ƀcw(c,n).displayParent(a).attachToRoot();}),new I(a,"alpha",{duration:1e3,animation:x.easeIn}).animate({alpha:0}).tap(()=>a.destroy()).attach(a);}ƀcw(t,e){switch(t.type){case W__default.default.Shape.PARTICLE:throw new Error("Not implemented");case W__default.default.Shape.LINE:throw new Error("Not implemented");case W__default.default.Shape.PLANE:throw new Error("Not implemented");case W__default.default.Shape.CIRCLE:throw new Error("Not implemented");case W__default.default.Shape.CAPSULE:throw new Error("Not implemented");case W__default.default.Shape.BOX:throw new Error("Not implemented");case W__default.default.Shape.HEIGHTFIELD:throw new Error("Not implemented");case W__default.default.Shape.CONVEX:return this.ƀcv(t,e);default:{t.type;throw new Error}}}ƀcv(t,e){let i=[t.vertices.map(r=>({x:r[0],y:r[1]}))];return R.createPolygon(i,e).toSprite()}};Q=Xo([u(),Zo("design:paramtypes",[pt,Wt])],Q);var tn=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},en=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},ke=class{static{h(this,"HitTestService");}constructor(t){this.ƀle=t;}hitTest(t,e){let i=t.world,r=b.getFromP2BodyIDOrFail(t.id),s=f.cloneP2Body(t);this.ƀt(s,e);let n=i.broadphase.aabbQuery(i,this.ƀds(s)).map(l=>b.getFromP2BodyIDOrFail(l.id)).filter(l=>l.includeInPathfinding).filter(l=>r.canCollideWith(l)).map(l=>f.cloneP2Body(l.p2Body)),a=false;if(n.length!==0){let l=new W__default.default.World;l.addBody(s),n.forEach(c=>l.addBody(c)),l.step(1,1,1),a=l.narrowphase.contactEquations.some(c=>c.bodyA===s||c.bodyB===s),l.clear();}if(e?.testLayerID){let l=a?helpersLib.ColorHelper.red:helpersLib.ColorHelper.green;this.ƀle.createPhysicsEntityShapeVisual(t,e.testLayerID,{overridePosition:e.overridePosition,overrideRotation:e.overrideRotation,color:l});}return a}ƀt(t,e){e?.overridePosition&&(t.position=f.vectorToArray(e.overridePosition)),e?.overrideRotation&&(t.angle=e.overrideRotation.value);}ƀds(t){return t.aabbNeedsUpdate=true,t.updateAABB(),t.aabb}};ke=tn([u(),en("design:paramtypes",[Q])],ke);var sn=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},ze=class{static{h(this,"CollisionsService");}registerPhysicsWorld(t){t.p2World.on("beginContact",e=>{e.contactEquations.forEach(i=>{this.ƀje(t,i);});});}step(t,e,i){b.getPhysicsEntities().forEach(r=>{r.ƀbc=[];}),t.p2World.narrowphase.contactEquations.forEach(r=>{this.ƀje(t,r);}),t.bodiesInContactWith.forEach((r,s)=>{this.ƀfd(r.p2Body),r.entity.ƀjt(t.collisionReports.get(s)||[]);}),t.bodiesInContactWith.clear(),t.collisionReports.clear();}ƀfd(t){let e=f.arrayToVector(t.velocity);e.length>Ei&&(e=e.normalize(Ei),t.velocity=f.vectorToArray(e)),t.angularVelocity=Math.min(Math.max(t.angularVelocity,-Ti),Ti);}ƀje(t,e){let i=b.getFromP2BodyID(e.bodyA.id),r=b.getFromP2BodyID(e.bodyB.id);if(i&&r){t.bodiesInContactWith.set(e.bodyA.id,{p2Body:e.bodyA,entity:i}),t.bodiesInContactWith.set(e.bodyB.id,{p2Body:e.bodyB,entity:r});let s=t.collisionReports.get(e.bodyA.id)||[],n=t.collisionReports.get(e.bodyB.id)||[],{collisionDetailsA:a,collisionDetailsB:l}=this.ƀdy(i,r,e);s.push({self:a,target:l}),n.push({self:l,target:a}),t.collisionReports.set(e.bodyA.id,s),t.collisionReports.set(e.bodyB.id,n);}else console.warn("ContactEquationOrganiser: Entity not found for contact equation",e);}ƀdy(t,e,i){let r=t.convertToDTO(),s=e.convertToDTO(),n=f.arrayToVector(i.contactPointA),a=f.arrayToVector(i.contactPointB),{normalA:l,normalB:c}=this.ƀen(i);return {collisionDetailsA:this.ƀdx(r,i.bodyA.mass,n,l,t.area),collisionDetailsB:this.ƀdx(s,i.bodyB.mass,a,c,e.area)}}ƀdx(t,e,i,r,s){let n,a=i.add(t.position);return {body:t,getPositionReletiveToObject:h(()=>(n||(n=i.rotate(t.rotation.multiply(-1).vector)),n),"getPositionReletiveToObject"),getPositionOnWorld:h(()=>(a||(a=i.add(t.position)),a),"getPositionOnWorld"),position:i,mass:e,area:s,normal:r}}ƀen(t){let e=f.arrayToVector(t.normalA),i=e.multiplyNumber(-1);return {normalA:e,normalB:i}}};ze=sn([u()],ze);var on=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},nn=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},Je=class extends pe{static{h(this,"BorderEntity");}constructor(t,e){super(t,e);}};Je=on([gt(),nn("design:paramtypes",[Number,Object])],Je);var an=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},j=1e4,Ye=class{static{h(this,"BorderService");}createBorders(t,e,i){this.ƀbv(t,new helpersLib.Vector(e.x/2,-j/2),new helpersLib.Vector(e.x+j*2,j),i),this.ƀbv(t,new helpersLib.Vector(e.x/2,e.y+j/2),new helpersLib.Vector(e.x+j*2,j),i),this.ƀbv(t,new helpersLib.Vector(-j/2,e.y/2),new helpersLib.Vector(j,e.y+j*2),i),this.ƀbv(t,new helpersLib.Vector(e.x+j/2,e.y/2),new helpersLib.Vector(j,e.y+j*2),i);}ƀbv(t,e,i,r){return new Je(t,{shapeDefinition:{materialName:lt,group:r,shapeType:exports.PhysicsShapeType.Rectangle,shapeData:i},position:e,rotation:helpersLib.Radian.get0,addInEmptySpace:false,includeOnPathfinding:true}).attachByID(t)}};Ye=an([u()],Ye);var ln=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},fr=new W__default.default.Material,cn={id:lt,density:Number.MAX_SAFE_INTEGER,velocityDrag:1,rotationalDrag:1},Ut=class{static{h(this,"MaterialsService");}createMaterials(t,e,i,r){let s=new Map,n=new Map;if(i.forEach(a=>{s.set(a.id,new W__default.default.Material),n.set(a.id,a);}),s.has(lt))throw new Error(`Material with name ${lt} cannot be defined, pick another name for the material.`);return s.set(lt,fr),n.set(lt,cn),this.ƀc(t,e,i,r,s),{materials:s,materialDefinitions:n}}getMaterial(t,e){let i=v.getInstanceByIDOrFail(t);return this.ƀel(e,i.materials)}getMaterialDefinition(t,e){let i=v.getInstanceByIDOrFail(t);return this.ƀek(e,i.materialDefinitions)}ƀel(t,e){let i=e.get(t);if(!i)throw new Error(`Could not find material with name ${t}.`);return i}ƀek(t,e){let i=e.get(t);if(!i)throw new Error(`Could not find material definition with name ${t}.`);return i}ƀc(t,e,i,r,s){this.ƀed(i.map(n=>n.id),r).forEach(n=>{let a=this.ƀel(n.materialA,s),l=this.ƀel(n.materialB,s);t.addContactMaterial(new W__default.default.ContactMaterial(a,l,{friction:n.friction,restitution:n.bounciness,stiffness:n.stiffness,relaxation:n.relaxation}));}),this.ƀd(t,e,i,s);}ƀed(t,e){let i=new Map;e.forEach(s=>{let n=i.get(s.materialA);n||(n=new Map,i.set(s.materialA,n)),n.set(s.materialB,s);});let r=[];return t.forEach((s,n)=>{for(let a=n;a<t.length;a++){let l=t[a],c=i.get(s)?.get(l);c?r.push(c):r.push({materialA:s,materialB:l,friction:0,bounciness:0,relaxation:4,stiffness:1e6});}}),r}ƀd(t,e,i,r){i.forEach(s=>{let n=this.ƀel(s.id,r);t.addContactMaterial(new W__default.default.ContactMaterial(n,fr,{friction:e.friction,restitution:e.bounciness,stiffness:e.stiffness,relaxation:e.relaxation}));});}};Ut=ln([u()],Ut);var pn=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},un=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},$t=class{static{h(this,"PhysicsWorldService");}constructor(t,e,i,r,s){this.ƀgw=t,this.ƀak=e,this.ƀaa=i,this.ƀbd=r,this.ƀig=s;}createPhysicsWorld(t){let e=new W__default.default.World({gravity:[0,0]}),{materials:i,materialDefinitions:r}=this.ƀgw.createMaterials(e,t.borderProperties,t.materialDefinitions,t.materialContactDefinitions),{physicsBodyGroupToP2Group:s,physicsBodyGroupToP2Mask:n}=this.ƀig.createBodyGroupsAndMasks(t.physicsBodyGroups,t.interactingBodyGroups),a=new v(t.mapSize,t.modifyUpdateCycle,e,i,r,s,n).attachByID(t.attachTo);return a.onDestroy().tap(()=>{e.clear(),t.modifyUpdateCycle&&m.cleanUpdateModifier();}).attachToRoot(),this.ƀak.createBorders(a.id,t.mapSize,t.borderProperties.borderBodyGroup),this.ƀbd.registerPhysicsWorld(a),t.modifyUpdateCycle?m.registerUpdateModifier((l,c)=>this.ƀkw(a,l,c)):m.beforeSceneUpdateAction.subscribe(({time:l,delta:c})=>{this.ƀkw(a,l,c);}).attach(a),a.id}addBody(t,e,i,r,s){let n=v.getInstanceByIDOrFail(t);if(i){let a=this.ƀaa.findClosestAvailableSpace(n,e,r);return a?(e.position[0]+=a.x,e.position[1]+=a.y,n.p2World.addBody(e),s&&this.ƀaa.onBodyAdded(n,e,r),true):false}else return n.p2World.addBody(e),s&&this.ƀaa.onBodyAdded(n,e,r),true}removeBody(t,e){v.getInstanceByID(t)?.p2World.removeBody(e);}ƀkw(t,e,i){if(!t.paused.value){t.availabilityGridCache.clear(),t.vectorFieldCache.clear(),t.p2World.step(i,i,i),t.modifyUpdateCycle&&(i=t.p2World.time-t.lastP2Time.value);let r=e+i;this.ƀbd.step(t,r,i),t.onPhysicsStep.trigger({time:r,delta:i}),t.lastP2Time.value=t.p2World.time;}return i}setPaused(t,e){v.getInstanceByIDOrFail(e).paused.set(t);}};$t=pn([u(),un("design:paramtypes",[Ut,Ye,pt,ze,X])],$t);var fn=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},zt=class{static{h(this,"RayCastingService");}castClosest(t,e,i){let r=new W__default.default.RaycastResult,s=new W__default.default.Ray({mode:W__default.default.Ray.CLOSEST,from:f.vectorToArray(e.from),to:f.vectorToArray(e.to),collisionGroup:t.physicsBodyGroupToP2Group.get(i),collisionMask:t.physicsBodyGroupToP2Mask.get(i)});if(t.p2World.raycast(r,s),r.hasHit())return this.ƀbq(r,e)}castAllFirstContacts(t,e,i){let r=new Map,s=new W__default.default.Ray({mode:W__default.default.Ray.ALL,from:f.vectorToArray(e.from),to:f.vectorToArray(e.to),collisionGroup:t.physicsBodyGroupToP2Group.get(i),collisionMask:t.physicsBodyGroupToP2Mask.get(i),callback:h(n=>{let a=r.get(n.body);!r.has(n.body)||n.fraction<a.fraction?r.set(n.body,this.ƀbq(n,e)):n.fraction===a.fraction&&a.isExternal()&&r.set(n.body,this.ƀbq(n,e));},"callback")});return t.p2World.raycast(new W__default.default.RaycastResult,s),Array.from(r.values())}ƀbq(t,e){let i=t.fraction,r=f.arrayToVector(t.normal),s,n,a;return {body:t.body,hitPosition:h(()=>(s===void 0&&(s=e.from.lerp(e.to,i)),s),"hitPosition"),hitDistance:h(()=>(n===void 0&&(n=e.length*i),n),"hitDistance"),isExternal:h(()=>(a===void 0&&(a=e.fromTo.dotProduct(r)<0),a),"isExternal"),normal:r,fraction:i,line:e}}};zt=fn([u()],zt);var mn=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},ft=class{static{h(this,"ImpactService");}applyImpulse(t,e,i,r){let s=i.normalize(r),n=[e.x-t.position[0],e.y-t.position[1]];t.applyImpulse(f.vectorToArray(s),n);}};ft=mn([u()],ft);var yn=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},Jt=class{static{h(this,"RayCastHitConverterService");}toExplosionHits(t,e=true){let i=new Map;return t.forEach(r=>{r.hits.forEach(s=>{let n=i.get(s.body);if(n){let a=s.fraction<n.closestRaycastHit.fraction?s:n.closestRaycastHit;n.rayCastHits.push(s),i.set(s.body,{hitCount:n.hitCount+1,closestRaycastHit:a,rayCastHits:n.rayCastHits,isExternal:e?n.isExternal:n.isExternal&&s.isExternal(),explosionCenter:s.line.from});}else {let a=s.isExternal();i.set(s.body,{hitCount:1,closestRaycastHit:s,rayCastHits:[s],isExternal:a,explosionCenter:s.line.from});}});}),[...i.values()].map(r=>this.ƀbr(r,t.length))}ƀbr(t,e){let i=t.hitCount/e,r=t.rayCastHits;if(t.isExternal)return {body:b.getFromP2BodyIDOrFail(t.closestRaycastHit.body.id).convertToDTO(),p2Body:t.closestRaycastHit.body,isExternal:true,normal:t.closestRaycastHit.normal,fraction:t.closestRaycastHit.fraction,ratioOfHits:i,raycastResults:r,getHitPosition:t.closestRaycastHit.hitPosition,getHitDistance:t.closestRaycastHit.hitDistance};{let s=f.arrayToVector(t.closestRaycastHit.body.position);return {body:b.getFromP2BodyIDOrFail(t.closestRaycastHit.body.id).convertToDTO(),p2Body:t.closestRaycastHit.body,isExternal:false,normal:helpersLib.Vector.fromTo(s,t.explosionCenter).normalize(),fraction:0,ratioOfHits:i,raycastResults:r,getHitPosition:h(()=>t.explosionCenter,"getHitPosition"),getHitDistance:h(()=>0,"getHitDistance")}}}};Jt=yn([u()],Jt);var wn=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},xn=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},Pn=15,Xe=class{static{h(this,"ElipticExplosionService");}constructor(t,e,i,r){this.ƀja=t,this.ƀle=e,this.ƀiz=i,this.ƀfq=r;}createElipticExplosion(t,e,i,r,s,n,a){let l=v.getInstanceByIDOrFail(t),c=this.ƀcg(e,i,r,s,a?.hitOnlyClosest===true,l),p=this.ƀiz.toExplosionHits(c,false);return this.ƀr(p,n),a?.testLayerID&&this.ƀle.createElipticExplosionDebugVisual(l,a.testLayerID,c,e,i,r,a.debugRayDuration),p.map(y=>{let{p2Body:w,...C}=y;return C})}ƀcg(t,e,i,r,s,n){let a=[],l=e.vector,c=e.add(helpersLib.Radian.get90).vector,p=c.normalize(i.x);a.push(new helpersLib.Line(t,t.add(p))),a.push(new helpersLib.Line(t,t.add(p.multiplyNumber(-1))));let y=l.normalize(i.y);a.push(new helpersLib.Line(t,t.add(y))),a.push(new helpersLib.Line(t,t.add(y.multiplyNumber(-1))));let w=Math.round(i.y/Pn),C=i.y/(w*2+1)*2,Ct=l.normalize(C),ue=i.x,yr=Math.pow(i.y,2);return helpersLib.ArrayHelper.createIntegerArray(w).forEach(yt=>{let At=C*(yt+1),Oi=Ct.multiplyNumber(yt+1),de=c.normalize(this.ƀev(ue,yr,At)),fe=t.add(Oi);a.push(new helpersLib.Line(fe,fe.add(de))),a.push(new helpersLib.Line(fe,fe.add(de.multiplyNumber(-1))));let me=t.add(Oi.multiplyNumber(-1));a.push(new helpersLib.Line(me,me.add(de))),a.push(new helpersLib.Line(me,me.add(de.multiplyNumber(-1))));}),a.map(yt=>{if(s){let At=this.ƀja.castClosest(n,yt,r);return {line:yt,hits:At?[At]:[]}}else {let At=this.ƀja.castAllFirstContacts(n,yt,r);return {line:yt,hits:At}}})}ƀev(t,e,i){return Math.sqrt(1-Math.pow(i,2)/e)*t}ƀr(t,e){t.forEach(i=>{i.raycastResults.forEach(r=>{let s,n;r.isExternal()?(s=r.line.fromTo,n=e*2):(s=r.line.fromTo.multiplyNumber(-1),n=e*(1-r.fraction)*8),this.ƀfq.applyImpulse(r.body,r.hitPosition(),s,n);});});}};Xe=wn([u(),xn("design:paramtypes",[zt,Q,Jt,ft])],Xe);var Sn=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},En=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},Ze=class{static{h(this,"ExplosionService");}constructor(t,e,i,r){this.ƀja=t,this.ƀle=e,this.ƀiz=i,this.ƀfq=r;}createExplosion(t,e,i,r,s,n){let a=v.getInstanceByIDOrFail(t),l=this.ƀet(i),c=this.ƀcg(e,i,r,l,n?.hitOnlyClosest===true,a),p=this.ƀiz.toExplosionHits(c);return this.ƀr(e,i,s,l,p),n?.testLayerID&&this.ƀle.createExplosionDebugVisual(a,n.testLayerID,c,e,i,n.debugRayDuration),p}ƀcg(t,e,i,r,s,n){let a=new helpersLib.Radian(helpersLib.PI_360/r),l=new helpersLib.Vector(0,-e),c=a.vector;return helpersLib.ArrayHelper.createEmptyArray(r).map(()=>{let p=t.add(l);return l=l.rotate(c),new helpersLib.Line(t,p)}).map(p=>{if(s){let y=this.ƀja.castClosest(n,p,i);return {line:p,hits:y?[y]:[]}}else {let y=this.ƀja.castAllFirstContacts(n,p,i);return {line:p,hits:y}}})}ƀr(t,e,i,r,s){s.forEach(n=>{if(n.isExternal)n.raycastResults.forEach(a=>{let l=i*(1-a.fraction);this.ƀfq.applyImpulse(a.body,a.hitPosition(),a.line.fromTo,l);});else {let a=helpersLib.Vector.fromTo(t,f.arrayToVector(n.p2Body.position)),l=a.length/e,c=i*r*l/2;this.ƀfq.applyImpulse(n.p2Body,n.getHitPosition(),a,c);}});}ƀet(t){return t>100?Math.floor(t*.3):Math.floor(t*.26+4)}};Ze=Sn([u(),En("design:paramtypes",[zt,Q,Jt,ft])],Ze);var An=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},Yt=class{static{h(this,"PhysicsQueryService");}getMapSize(t){let e=v.getInstanceByIDOrFail(t);return {dimentions:e.mapSize,center:e.mapSizeCenter}}subscribeToPhysicsStep(t,e){return v.getInstanceByIDOrFail(t).onPhysicsStep.subscribe(e)}};Yt=An([u()],Yt);var On=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},Mn=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},Ci=class{static{h(this,"PhysicsController");}constructor(t,e,i,r,s,n,a,l){this.ƀin=t,this.ƀhz=e,this.ƀle=i,this.ƀdh=r,this.ƀda=s,this.ƀfi=n,this.ƀim=a,this.ƀfq=l;}createPhysicsWorld(t){return this.ƀin.createPhysicsWorld(t)}getMapSize(t){return this.ƀim.getMapSize(t)}setPaused(t,e){this.ƀin.setPaused(t,e);}hitTest(t,e){let i=b.getPhysicsInstanceOrFail(t);return this.ƀfi.hitTest(i.p2Body,e)}findPath(t,e,i,r,s){return this.ƀhz.findPathAStar(t,e,i,r,{neighborType:s})}findPathDirection(t,e,i,r){return this.ƀhz.findPathDirection(t,e,i,r)}applyImpulse(t,e,i,r){let s=b.getPhysicsInstanceOrFail(t);this.ƀfq.applyImpulse(s.p2Body,e,i,r);}createExplosion(t,e,i,r,s,n){return this.ƀdh.createExplosion(t,e,i,r,s,n)}createElipticExplosion(t,e,i,r,s,n,a){return this.ƀda.createElipticExplosion(t,e,i,r,s,n,a)}printPathfindingTestGrid(t,e,i,r,s,n=50){this.ƀle.printPathfindingTestGrid(t,e,i,r,s,n);}};Ci=On([tt(exports.PhysicsGateway),Mn("design:paramtypes",[$t,Wt,Q,Ze,Xe,ke,Yt,ft])],Ci);var Dn=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},Qe=class{static{h(this,"ShapeCreationService");}createBody(t,e,i,r,s){let n=v.getInstanceByIDOrFail(t);if(!n.physicsBodyGroupToP2Group.has(e.shapeDefinition.group))throw new Error(`Physics body group "${e.shapeDefinition.group}" not found`);switch(e.shapeDefinition.shapeType){case exports.PhysicsShapeType.Point:return this.ƀbx(n,void 0,i,r,e.shapeDefinition.group,s);case exports.PhysicsShapeType.Circle:return this.ƀbx(n,e.shapeDefinition.shapeData,i,r,e.shapeDefinition.group,s);case exports.PhysicsShapeType.Polygon:return this.ƀcf(n,e.shapeDefinition.shapeData,i,r,e.shapeDefinition.group,s);case exports.PhysicsShapeType.Rectangle:return this.ƀch(n,e.shapeDefinition.shapeData,i,r,e.shapeDefinition.group,s);default:{e.shapeDefinition.shapeType;throw new Error}}}ƀbx(t,e,i,r,s,n){let a=new W__default.default.Circle({collisionGroup:t.physicsBodyGroupToP2Group.get(s),collisionMask:t.physicsBodyGroupToP2Mask.get(s),radius:e});a.material=i;let l=new W__default.default.Body({type:n==="dynamic"?W__default.default.Body.DYNAMIC:W__default.default.Body.STATIC,mass:r.density,damping:r.velocityDrag,angularDamping:r.rotationalDrag});return l.addShape(a),l}ƀcf(t,e,i,r,s,n){let a=t.physicsBodyGroupToP2Group.get(s),l=t.physicsBodyGroupToP2Mask.get(s),c=e.map(w=>new W__default.default.Convex({vertices:w.map(C=>[C.x,C.y]),collisionGroup:a,collisionMask:l})).map(w=>(w.material=i,w)),p=c.reduce((w,C)=>w+C.area,0),y=new W__default.default.Body({type:n==="dynamic"?W__default.default.Body.DYNAMIC:W__default.default.Body.STATIC,mass:p,damping:r.velocityDrag,angularDamping:r.rotationalDrag});return c.forEach(w=>y.addShape(w)),y.setDensity(r.density),y}ƀch(t,e,i,r,s,n){let a=new W__default.default.Box({width:e.x,height:e.y,collisionGroup:t.physicsBodyGroupToP2Group.get(s),collisionMask:t.physicsBodyGroupToP2Mask.get(s)});a.material=i;let l=e.x*e.y,c=new W__default.default.Body({type:n==="dynamic"?W__default.default.Body.DYNAMIC:W__default.default.Body.STATIC,mass:l,damping:r.velocityDrag,angularDamping:r.rotationalDrag});return c.addShape(a),c.setDensity(r.density),c}};Qe=Dn([u()],Qe);var Bn=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},Gn=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},Ai=class{static{h(this,"PhysicsInternalController");}constructor(t,e,i,r,s){this.ƀin=t,this.ƀil=e,this.ƀkd=i,this.ƀim=r,this.ƀig=s;}createBody(t,e,i,r,s){return this.ƀkd.createBody(t,e,i,r,s)}getMaterial(t,e){return this.ƀil.getMaterial(t,e)}getMaterialDefinition(t,e){return this.ƀil.getMaterialDefinition(t,e)}getGroupConstant(t,e){return this.ƀig.getGroupConstant(t,e)}getMaskConstant(t,e){return this.ƀig.getMaskConstant(t,e)}addBody(t,e,i,r,s){return this.ƀin.addBody(t,e,i,r,s)}removeBody(t,e){this.ƀin.removeBody(t,e);}subscribeToPhysicsStep(t,e){return this.ƀim.subscribeToPhysicsStep(t,e)}};Ai=Bn([tt(ct),Gn("design:paramtypes",[$t,Ut,Qe,Yt,X])],Ai);exports.AdvancedSound=ht;exports.AnimationFlicker=Bi;exports.AnimationInterpolationFunctions=V;exports.Animations=x;exports.Animator=I;exports.BORDER_MATERIAL_NAME=lt;exports.BardLegendsHardReset=E;exports.Camera=te;exports.ClosestAvailableSpaceHelper=Zt;exports.Container=d;exports.ControllerDecorator=tt;exports.DEFAULT_SHADER_RESOLUTION=N;exports.DeltaTime=ni;exports.DisplayObjectArray=di;exports.Entity=$;exports.EntityDecorator=gt;exports.FadeInContent=ji;exports.Game=g;exports.Gateway=q;exports.Graphics=R;exports.ImmovablePhysicsEntity=pe;exports.MenuEntity=mi;exports.MenuUI=ne;exports.MenuView=yi;exports.MovableEntity=Ri;exports.MovablePhysicsEntity=Ii;exports.Music=ie;exports.MusicPlayer=li;exports.PathFinder=Qt;exports.PhysicsEntity=b;exports.Placeholder=ci;exports.ROTATIONAL_SPEED_LIMIT=Ti;exports.RichText=pi;exports.SOUND_TRANSITION_DURATION=K;exports.SPEED_LIMIT=Ei;exports.Scene=Ot;exports.SceneDecorator=Ar;exports.ScrollAreaUI=gi;exports.ScrollMaskUI=Pt;exports.Service=P;exports.ServiceDecorator=u;exports.SingletonEntity=wt;exports.SlideInContent=Ji;exports.SlideInContentByIndex=oi;exports.SlideStateAnimation=Ie;exports.Sound=ee;exports.Sprite=J;exports.StateAnimation=_t;exports.Text=oe;exports.ThroughEmptyStateAnimation=be;exports.UpdatableContainer=ui;exports.UpdateCycle=m;exports.VectorFieldPathFinder=qt;exports.VectorSet=Et;exports.View=U;exports.ViewDecorator=ti;