bard-legends-framework 1.4.3 → 1.4.5

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.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import {Action,ActionLib,SingleEvent,IDAttachable,SingleAction,Sequence,Variable,Attachable,Reducer}from'actions-lib';import'reflect-metadata';import {Vector,Radian,Rectangle,NumberHelper,ArrayHelper,Comparator,Random,MapToWeakRefs,ColorHelper,Queue,GridNeighborType,BinaryHeap,Grid,JsonHelper,PI_360,Line}from'helpers-lib';import*as L from'pixi.js';import {RichTextSeparator}from'script-engine-lib';import U from'p2';var hr=Object.defineProperty;var h=(o,t)=>hr(o,"name",{value:t,configurable:true});var F=class{static{h(this,"BardLegendsHardReset");}static{this.ƀes=new Action;}static{this.onHardReset=this.ƀes.notifier;}static hardReset(){ActionLib.hardReset(),this.ƀes.trigger();}};function d(){return function(o){let t=T.ƀed(o);o.$meta={paramtypes:t,type:"service"};}}h(d,"ServiceDecorator");var T=class{static{h(this,"Service");}static{this.ƀiv=new Map;}static get(t){let e=this.ƀiv.get(t);if(!e){if(!t.$meta)throw new Error(`Service: service class is not decorated by @ServiceDecorator(), class: "${t.name}"`);let i=this.ƀii(t.$meta.paramtypes);e=new t(...i),this.ƀiv.set(t,e);}return e}static ƀed(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 ƀii(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}"`)})}};F.onHardReset.subscribe(()=>{T.ƀiv=new Map;}).attachToRoot();var $=class{static{h(this,"ControllerLink");}constructor(){this.ƀbl=[],this.ƀig=[];}trigger(t,...e){let i=this.ƀbl.find(r=>!!r[t]);if(i)return i[t](...e);throw new Error(`ServiceLink: no defined function with the name: "${t}", found in the linked controllers!`)}registerController(t){Reflect.ownKeys(t.constructor.prototype).filter(e=>e!=="constructor").map(e=>e.toString()).forEach(e=>{if(this.ƀig.includes(e))throw new Error(`ServiceLink: the function is already registered, function name: "${e}"`);this.ƀig.push(e);}),this.ƀbl.push(t);}};function q(o){return function(t){let e=T.ƀed(t);if(e.some(i=>!i))console.error(`Circular dependency: ${t.name}`);else {let i=T.ƀii(e);i.some(s=>s===void 0)&&console.error(i,e,t.name);let r=new t(...i);o.controllerLink.registerController(r);}t.$meta={type:"controller"};}}h(q,"ControllerDecorator");var y=class o{static{h(this,"UpdateCycle");}static{this.ƀab=new Action;}static{this.beforeSceneUpdateAction=this.ƀab.notifier;}static{this.ƀin=new Action;}static{this.sceneUpdateAction=this.ƀin.notifier;}static{this.ƀf=new Action;}static{this.afterSceneUpdateAction=this.ƀf.notifier;}static{this.ƀjz=0;}static{this.ƀkh=void 0;}static wait(t){let e=this.ƀjz+t;return SingleEvent.create(i=>{let r=o.beforeSceneUpdateAction.subscribe(s=>{s.time>=e&&i();}).attachToRoot();return ()=>r.destroy()})}static registerUpdateModifier(t){if(!this.ƀkh)this.ƀkh=t;else throw new Error("UpdateCycle: There can only one update modifier!")}static cleanUpdateModifier(){this.ƀkh=void 0;}static triggerUpdateTick(t){this.ƀkh&&(t=this.ƀkh(this.ƀjz,t)),this.ƀjz+=t,this.ƀft=t,t>0&&(o.ƀab.trigger({time:this.ƀjz,delta:t}),o.ƀin.trigger({time:this.ƀjz,delta:t}),o.ƀf.trigger({time:this.ƀjz,delta:t}));}static get lastDelta(){return this.ƀft}static{this.ƀft=0;}};F.onHardReset.subscribe(()=>{y.ƀab.clear(),y.ƀin.clear(),y.ƀf.clear(),y.ƀkh=void 0,y.ƀjz=0;}).attachToRoot();var A=class o{static{h(this,"EntityStoreHelper");}static{this.ƀau=new Map;}static registerEntityClass(t){this.ƀau.set(t.id,new Map);}static registerEntity(t){let e=this.ƀau.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.ƀau.get(i)?.delete(e);}static getEntity(t,e){return this.ƀau.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.ƀau.get(t.id);return Array.from(e.values())}};F.onHardReset.subscribe(()=>{A.ƀau.clear();}).attachToRoot();function Je(o){return function(t){t.$meta={paramtypes:T.ƀed(t),viewInstances:new Map,entity:o.entity,type:"view"},rt.registerView(t,o.entity);}}h(Je,"ViewDecorator");var dt=class extends 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.attachToRoot(),this.ƀcx=rt.entityID,this.ƀej().set(this.ƀcx,this);}destroy(){this.destroyed||(super.destroy(),this.ƀej().delete(this.ƀcx));}update(t,e){}ƀej(){return this.constructor.$meta.viewInstances}};var rt=class o{static{h(this,"EntityViewsHelper");}static{this.ƀkq=new Map;}static registerView(t,e){o.ƀkq.has(e)||o.ƀkq.set(e,[]);let i=o.ƀkq.get(e);i&&i.push(t),A.getEntities(e).forEach(s=>{this.ƀcg(s,t);});}static ƀcg(t,e){try{let i=T.ƀii(e.$meta.paramtypes.slice(1));o.entityID=t.id;let r=new e(t,...i);t.destroyed?r.destroy():t.ƀkp.ƀkr.push(r);}catch(i){console.error(i);}}constructor(t){this.ƀcw=t,this.ƀkr=[];}createViews(){if(!this.ƀcw.destroyed){let t=o.ƀkq.get(this.ƀcw.constructor);t&&t.forEach(e=>{o.ƀcg(this.ƀcw,e);});}}updateViews(t,e){for(let i=0;i<this.ƀkr.length;i++){let r=this.ƀkr[i];r.destroyed||r.update(t,e);}}destroyViews(){this.ƀkr.forEach(t=>{t.destroy();});}};F.onHardReset.subscribe(()=>{rt.ƀkq=new Map;}).attachToRoot();function ut(){return function(o){o.$meta={type:"entity"},A.registerEntityClass(o);}}h(ut,"EntityDecorator");var k=class extends IDAttachable{static{h(this,"Entity");}static getInstanceByID(t){if(t)return A.getEntity(this,t)}static getInstanceByIDOrFail(t){let e=A.getEntity(this,t);if(!e)throw new Error(`Entity: entity is not found! Name: "${this.name}", id: "${t}"`);return e}static getEntities(){return A.getEntities(this)}constructor(){super(),this.ƀkp=new rt(this),A.registerEntity(this),y.sceneUpdateAction.subscribe(t=>{this.destroyed||(this.update(t.time,t.delta),this.ƀkp.updateViews(t.time,t.delta));}).attach(this);}destroy(){this.destroyed||(this.ƀkp.destroyViews(),A.unregisterEntity(this.constructor,this.id),super.destroy());}attach(t){return super.attach(t),this.ƀkp.createViews(),this}attachByID(t){return super.attachByID(t),this.ƀkp.createViews(),this}attachToRoot(){return super.attachToRoot(),this.ƀkp.createViews(),this}update(t,e){}};var ft=class o extends k{static{h(this,"SingletonEntity");}static{this.ƀch=new WeakMap;}static ƀdp(t){let e=o.ƀch.get(t);return e||(e=new SingleAction,o.ƀch.set(t,e)),e}static ƀke(t){o.ƀch.delete(t);}static getInstanceAsync(){let t=A.getSingleton(this);return t&&!t.destroyed?SingleEvent.instant(t):o.ƀdp(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 Sequence.create((e,i)=>t(e,i.attachable))}static getInstance(){return A.getSingleton(this)}static getInstanceOrFail(){return A.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.ƀke(this.constructor)).attachToRoot(),o.ƀdp(this.constructor).resolve(this);}};function vr(){return function(o){return o.$meta={paramtypes:T.ƀed(o),type:"scene"},o}}h(vr,"SceneDecorator");var he=class o extends IDAttachable{static{h(this,"Scene");}static{this.ƀfm=new Variable(false);}static{this.isTransitioning=this.ƀfm.notifier;}static getIsTransitioning(){return o.ƀfm.value}static{this.ƀb=new Variable(void 0);}static{this.activeScene=this.ƀb.notifier;}static getActiveScene(){return o.ƀb.value}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.animateAndClose():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.ƀfm.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.ƀfm.value=true;let i=T.ƀii(this.$meta.paramtypes),r=new this(...i).attachToRoot();return o.ƀb.set(r),r.init(e).map(()=>(o.ƀfm.value=false,r)).chainToRoot()}constructor(){super(),this.ƀgq=new SingleAction,this.onClose=this.ƀgq.notifier,y.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.ƀfm.value)throw new Error("Scene: you cannot close a scene while a scene is transitioning!");o.ƀfm.value=true;let e=t[0];return this.animateAndClose().map(()=>(this.ƀgq.resolve(e),e)).chainToRoot()}animateAndClose(){return this.prepareToClose().tap(()=>{super.destroy(),o.ƀb.set(void 0),o.ƀfm.value=false;}).chainToRoot()}destroy(){throw new Error('To close a scene use the "close()" function')}};F.onHardReset.subscribe(()=>{he.ƀb.set(void 0);}).attachToRoot();var jt;(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";})(jt||(jt={}));var Ye;(function(o){o.Default="default",o.Pointer="pointer";})(Ye||(Ye={}));var ce=class extends IDAttachable{static{h(this,"ContainerAttributes");}constructor(){super(),this.ƀgk=false,this.ƀdc=false,this.ƀil=1,this.ƀv=1,this.ƀhs=new L.Container;}get size(){return this.getSize()}set size(t){this.setSize(t);}getSize(){return new Vector(this.ƀhs.width,this.ƀhs.height)}setSize(t){return this.ƀhs.width=t.x,this.ƀhs.height=t.y,this}setPosition(t,e){if(e?.holdFrom){let i=this.ƀhs.getLocalBounds(),r=new Vector(this.ƀhs.scale.x,this.ƀhs.scale.y),s=new Vector(i.x,i.y).multiply(r),n=new 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 Vector(this.ƀhs.x,this.ƀhs.y)}set position(t){this.ƀhs.position=t;}get x(){return this.ƀhs.x}set x(t){this.ƀhs.x=t;}get y(){return this.ƀhs.y}set y(t){this.ƀhs.y=t;}on(t){return Sequence.create(e=>{let i=h(r=>e(),"handle");return this.ƀhs.on(t,i),()=>this.ƀhs.off(t,i)})}setRotation(t){return this.rotation=t,this}get rotation(){return new Radian(this.ƀhs.rotation)}set rotation(t){this.ƀhs.rotation=t.value;}get rotationValue(){return this.rotation.value}set rotationValue(t){this.rotation=new Radian(t);}setZIndex(t){return this.zIndex=t,this}get zIndex(){return this.ƀhs.zIndex}set zIndex(t){this.ƀhs.zIndex=t;}setSkewX(t){return this.skewX=t,this}get skewX(){return new Radian(this.ƀhs.skew.x)}set skewX(t){this.ƀhs.skew.x=t.value;}setSkewY(t){return this.skewY=t,this}get skewY(){return new Radian(this.ƀhs.skew.y)}set skewY(t){this.ƀhs.skew.y=t.value;}setSortableChildren(t){return this.sortableChildren=t,this}get sortableChildren(){return this.ƀhs.sortableChildren}set sortableChildren(t){this.ƀhs.sortableChildren=t;}setAlpha(t){return this.ƀhs.alpha=t,this}get alpha(){return this.ƀhs.alpha}set alpha(t){this.ƀhs.alpha=t;}setInteractive(t){return this.interactive=t,this}get interactive(){return this.ƀhs.interactive}set interactive(t){t?this.ƀhs.eventMode="dynamic":this.ƀhs.eventMode="none";}setCursor(t){return this.cursor=t,this}get cursor(){return this.ƀhs.cursor}set cursor(t){this.ƀhs.cursor=t;}getMask(){throw new Error("ContainerAttributes: mask is not available!")}setMask(t){return t?(this.ƀhs.addChild(t.ƀhs),this.ƀhs.mask=t.getMask(),this.ƀgd=t):(this.ƀgd&&this.ƀhs.removeChild(this.ƀgd.ƀhs),this.ƀhs.mask=null),this}hitTest(t){if(this.ƀhs.parent)if(this.ƀhs.hitArea){let e=this.ƀhs.toLocal(t);return this.ƀhs.hitArea.contains(e.x,e.y)}else return this.ƀhs.getBounds().contains(t.x,t.y);else return false}get boundingBox(){let t=this.ƀhs.getLocalBounds();return new Rectangle(new Vector(t.x,t.y),new Vector(t.x+t.width,t.y+t.height))}ignoreBounds(t=true){return t?(this.ƀhc||(this.ƀhc=this.ƀhs.calculateBounds),this.ƀhs.calculateBounds=()=>this.ƀhs._bounds.clear()):this.ƀhc&&(this.ƀhs.calculateBounds=this.ƀhc),this}setMirror(t=false){return this.mirror=t,this}get mirror(){return this.ƀgk}set mirror(t){this.ƀgk=t,this.ƀki();}setFlip(t=false){return this.flip=t,this}get flip(){return this.ƀdc}set flip(t){this.ƀdc=t,this.ƀki();}setScale(t){return this.scale=t,this}get scale(){return this.ƀil}set scale(t){this.ƀil=t,this.ƀki();}setAspectRatio(t){return this.aspectRatio=t,this}get aspectRatio(){return this.ƀv}set aspectRatio(t){this.ƀv=t,this.ƀki();}ƀki(){this.ƀhs.scale.set(this.ƀil,this.ƀil),this.ƀv<1?this.ƀhs.scale.x*=this.ƀv:this.ƀv>1&&(this.ƀhs.scale.y/=this.ƀv),this.ƀgk&&(this.ƀhs.scale.x*=-1),this.ƀdc&&(this.ƀhs.scale.y*=-1);}};var O=2,St;(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";})(St||(St={}));var pe=class{static{h(this,"GaussianValuesHelper");}static ƀdh(t,e){let i=e*e,r=1/(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=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.ƀbq(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=ArrayHelper.createIntegerArray(Math.ceil(t*.75)).map(r=>this.ƀdh(r,t*.4)),i=e.reduce((r,s)=>r+s,0);return i=i*2-e[0],e=e.map(r=>r/i),this.ƀbq(e)}}static ƀbq(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 Ri=class Xe extends L.Filter{static{h(this,"BlurFilterPass");}static ƀei(){return `
1
+ import {Action,ActionLib,SingleEvent,IDAttachable,SingleAction,Sequence,Variable,Attachable,Reducer}from'actions-lib';import'reflect-metadata';import {Vector,Radian,Rectangle,NumberHelper,ArrayHelper,Comparator,Random,MapToWeakRefs,ColorHelper,Queue,GridNeighborType,BinaryHeap,Grid,JsonHelper,PI_360,Line}from'helpers-lib';import*as L from'pixi.js';import {RichTextSeparator}from'script-engine-lib';import U from'p2';var lr=Object.defineProperty;var h=(o,t)=>lr(o,"name",{value:t,configurable:true});var F=class{static{h(this,"BardLegendsHardReset");}static{this.ƀeu=new Action;}static{this.onHardReset=this.ƀeu.notifier;}static hardReset(){ActionLib.hardReset(),this.ƀeu.trigger();}};function d(){return function(o){let t=T.ƀee(o);o.$meta={paramtypes:t,type:"service"};}}h(d,"ServiceDecorator");var T=class{static{h(this,"Service");}static{this.ƀix=new Map;}static get(t){let e=this.ƀix.get(t);if(!e){if(!t.$meta)throw new Error(`Service: service class is not decorated by @ServiceDecorator(), class: "${t.name}"`);let i=this.ƀik(t.$meta.paramtypes);e=new t(...i),this.ƀix.set(t,e);}return e}static ƀee(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 ƀik(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}"`)})}};F.onHardReset.subscribe(()=>{T.ƀix=new Map;}).attachToRoot();var $=class{static{h(this,"ControllerLink");}constructor(){this.ƀbl=[],this.ƀii=[];}trigger(t,...e){let i=this.ƀbl.find(r=>!!r[t]);if(i)return i[t](...e);throw new Error(`ServiceLink: no defined function with the name: "${t}", found in the linked controllers!`)}registerController(t){Reflect.ownKeys(t.constructor.prototype).filter(e=>e!=="constructor").map(e=>e.toString()).forEach(e=>{if(this.ƀii.includes(e))throw new Error(`ServiceLink: the function is already registered, function name: "${e}"`);this.ƀii.push(e);}),this.ƀbl.push(t);}};function q(o){return function(t){let e=T.ƀee(t);if(e.some(i=>!i))console.error(`Circular dependency: ${t.name}`);else {let i=T.ƀik(e);i.some(s=>s===void 0)&&console.error(i,e,t.name);let r=new t(...i);o.controllerLink.registerController(r);}t.$meta={type:"controller"};}}h(q,"ControllerDecorator");var y=class o{static{h(this,"UpdateCycle");}static{this.ƀab=new Action;}static{this.beforeSceneUpdateAction=this.ƀab.notifier;}static{this.ƀip=new Action;}static{this.sceneUpdateAction=this.ƀip.notifier;}static{this.ƀf=new Action;}static{this.afterSceneUpdateAction=this.ƀf.notifier;}static{this.ƀkb=0;}static{this.ƀkj=void 0;}static wait(t){let e=this.ƀkb+t;return SingleEvent.create(i=>{let r=o.beforeSceneUpdateAction.subscribe(s=>{s.time>=e&&i();}).attachToRoot();return ()=>r.destroy()})}static registerUpdateModifier(t){if(!this.ƀkj)this.ƀkj=t;else throw new Error("UpdateCycle: There can only one update modifier!")}static cleanUpdateModifier(){this.ƀkj=void 0;}static triggerUpdateTick(t){this.ƀkj&&(t=this.ƀkj(this.ƀkb,t)),this.ƀkb+=t,this.ƀfv=t,t>0&&(o.ƀab.trigger({time:this.ƀkb,delta:t}),o.ƀip.trigger({time:this.ƀkb,delta:t}),o.ƀf.trigger({time:this.ƀkb,delta:t}));}static get lastDelta(){return this.ƀfv}static{this.ƀfv=0;}};F.onHardReset.subscribe(()=>{y.ƀab.clear(),y.ƀip.clear(),y.ƀf.clear(),y.ƀkj=void 0,y.ƀkb=0;}).attachToRoot();var A=class o{static{h(this,"EntityStoreHelper");}static{this.ƀau=new Map;}static registerEntityClass(t){this.ƀau.set(t.id,new Map);}static registerEntity(t){let e=this.ƀau.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.ƀau.get(i)?.delete(e);}static getEntity(t,e){return this.ƀau.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.ƀau.get(t.id);return Array.from(e.values())}};F.onHardReset.subscribe(()=>{A.ƀau.clear();}).attachToRoot();function Ye(o){return function(t){t.$meta={paramtypes:T.ƀee(t),viewInstances:new Map,entity:o.entity,type:"view"},rt.registerView(t,o.entity);}}h(Ye,"ViewDecorator");var dt=class extends 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.attachToRoot(),this.ƀcy=rt.entityID,this.ƀel().set(this.ƀcy,this);}destroy(){this.destroyed||(super.destroy(),this.ƀel().delete(this.ƀcy));}update(t,e){}ƀel(){return this.constructor.$meta.viewInstances}};var rt=class o{static{h(this,"EntityViewsHelper");}static{this.ƀks=new Map;}static registerView(t,e){o.ƀks.has(e)||o.ƀks.set(e,[]);let i=o.ƀks.get(e);i&&i.push(t),A.getEntities(e).forEach(s=>{this.ƀcg(s,t);});}static ƀcg(t,e){try{let i=T.ƀik(e.$meta.paramtypes.slice(1));o.entityID=t.id;let r=new e(t,...i);t.destroyed?r.destroy():t.ƀkr.ƀkt.push(r);}catch(i){console.error(i);}}constructor(t){this.ƀcx=t,this.ƀkt=[];}createViews(){if(!this.ƀcx.destroyed){let t=o.ƀks.get(this.ƀcx.constructor);t&&t.forEach(e=>{o.ƀcg(this.ƀcx,e);});}}updateViews(t,e){for(let i=0;i<this.ƀkt.length;i++){let r=this.ƀkt[i];r.destroyed||r.update(t,e);}}destroyViews(){this.ƀkt.forEach(t=>{t.destroy();});}};F.onHardReset.subscribe(()=>{rt.ƀks=new Map;}).attachToRoot();function ut(){return function(o){o.$meta={type:"entity"},A.registerEntityClass(o);}}h(ut,"EntityDecorator");var k=class extends IDAttachable{static{h(this,"Entity");}static getInstanceByID(t){if(t)return A.getEntity(this,t)}static getInstanceByIDOrFail(t){let e=A.getEntity(this,t);if(!e)throw new Error(`Entity: entity is not found! Name: "${this.name}", id: "${t}"`);return e}static getEntities(){return A.getEntities(this)}constructor(){super(),this.ƀkr=new rt(this),A.registerEntity(this),y.sceneUpdateAction.subscribe(t=>{this.destroyed||(this.update(t.time,t.delta),this.ƀkr.updateViews(t.time,t.delta));}).attach(this);}destroy(){this.destroyed||(this.ƀkr.destroyViews(),A.unregisterEntity(this.constructor,this.id),super.destroy());}attach(t){return super.attach(t),this.ƀkr.createViews(),this}attachByID(t){return super.attachByID(t),this.ƀkr.createViews(),this}attachToRoot(){return super.attachToRoot(),this.ƀkr.createViews(),this}update(t,e){}};var ft=class o extends k{static{h(this,"SingletonEntity");}static{this.ƀch=new WeakMap;}static ƀdq(t){let e=o.ƀch.get(t);return e||(e=new SingleAction,o.ƀch.set(t,e)),e}static ƀkg(t){o.ƀch.delete(t);}static getInstanceAsync(){let t=A.getSingleton(this);return t&&!t.destroyed?SingleEvent.instant(t):o.ƀdq(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 Sequence.create((e,i)=>t(e,i.attachable))}static getInstance(){return A.getSingleton(this)}static getInstanceOrFail(){return A.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.ƀkg(this.constructor)).attachToRoot(),o.ƀdq(this.constructor).resolve(this);}};function br(){return function(o){return o.$meta={paramtypes:T.ƀee(o),type:"scene"},o}}h(br,"SceneDecorator");var le=class o extends IDAttachable{static{h(this,"Scene");}static{this.ƀfo=new Variable(false);}static{this.isTransitioning=this.ƀfo.notifier;}static getIsTransitioning(){return o.ƀfo.value}static{this.ƀb=new Variable(void 0);}static{this.activeScene=this.ƀb.notifier;}static getActiveScene(){return o.ƀb.value}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.animateAndClose():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.ƀfo.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.ƀfo.value=true;let i=T.ƀik(this.$meta.paramtypes),r=new this(...i).attachToRoot();return o.ƀb.set(r),r.init(e).map(()=>(o.ƀfo.value=false,r)).chainToRoot()}constructor(){super(),this.ƀgs=new SingleAction,this.onClose=this.ƀgs.notifier,y.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.ƀfo.value)throw new Error("Scene: you cannot close a scene while a scene is transitioning!");o.ƀfo.value=true;let e=t[0];return this.animateAndClose().map(()=>(this.ƀgs.resolve(e),e)).chainToRoot()}animateAndClose(){return this.prepareToClose().tap(()=>{super.destroy(),o.ƀb.set(void 0),o.ƀfo.value=false;}).chainToRoot()}destroy(){throw new Error('To close a scene use the "close()" function')}};F.onHardReset.subscribe(()=>{le.ƀb.set(void 0);}).attachToRoot();var Pt;(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";})(Pt||(Pt={}));var Xe;(function(o){o.Default="default",o.Pointer="pointer";})(Xe||(Xe={}));var pe=class extends IDAttachable{static{h(this,"ContainerAttributes");}constructor(){super(),this.ƀgm=false,this.ƀdd=false,this.ƀin=1,this.ƀv=1,this.ƀhu=new L.Container;}get size(){return this.getSize()}set size(t){this.setSize(t);}getSize(){return new Vector(this.ƀhu.width,this.ƀhu.height)}setSize(t){return this.ƀhu.width=t.x,this.ƀhu.height=t.y,this}setPosition(t,e){if(e?.holdFrom){let i=this.ƀhu.getLocalBounds(),r=new Vector(this.ƀhu.scale.x,this.ƀhu.scale.y),s=new Vector(i.x,i.y).multiply(r),n=new 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 Vector(this.ƀhu.x,this.ƀhu.y)}set position(t){this.ƀhu.position=t;}get x(){return this.ƀhu.x}set x(t){this.ƀhu.x=t;}get y(){return this.ƀhu.y}set y(t){this.ƀhu.y=t;}on(t){return Sequence.create(e=>{let i=h(r=>{if(t===Pt.Wheel){let n=r.deltaY;e({deltaY:n});}else e(void 0);},"handle");return this.ƀhu.on(t,i),()=>this.ƀhu.off(t,i)})}setRotation(t){return this.rotation=t,this}get rotation(){return new Radian(this.ƀhu.rotation)}set rotation(t){this.ƀhu.rotation=t.value;}get rotationValue(){return this.rotation.value}set rotationValue(t){this.rotation=new Radian(t);}setZIndex(t){return this.zIndex=t,this}get zIndex(){return this.ƀhu.zIndex}set zIndex(t){this.ƀhu.zIndex=t;}setSkewX(t){return this.skewX=t,this}get skewX(){return new Radian(this.ƀhu.skew.x)}set skewX(t){this.ƀhu.skew.x=t.value;}setSkewY(t){return this.skewY=t,this}get skewY(){return new Radian(this.ƀhu.skew.y)}set skewY(t){this.ƀhu.skew.y=t.value;}setSortableChildren(t){return this.sortableChildren=t,this}get sortableChildren(){return this.ƀhu.sortableChildren}set sortableChildren(t){this.ƀhu.sortableChildren=t;}setAlpha(t){return this.ƀhu.alpha=t,this}get alpha(){return this.ƀhu.alpha}set alpha(t){this.ƀhu.alpha=t;}setInteractive(t){return this.interactive=t,this}get interactive(){return this.ƀhu.interactive}set interactive(t){t?this.ƀhu.eventMode="dynamic":this.ƀhu.eventMode="none";}setCursor(t){return this.cursor=t,this}get cursor(){return this.ƀhu.cursor}set cursor(t){this.ƀhu.cursor=t;}getMask(){throw new Error("ContainerAttributes: mask is not available!")}setMask(t){return t?(this.ƀhu.addChild(t.ƀhu),this.ƀhu.mask=t.getMask(),this.ƀgf=t):(this.ƀgf&&this.ƀhu.removeChild(this.ƀgf.ƀhu),this.ƀhu.mask=null),this}hitTest(t){if(this.ƀhu.parent)if(this.ƀhu.hitArea){let e=this.ƀhu.toLocal(t);return this.ƀhu.hitArea.contains(e.x,e.y)}else return this.ƀhu.getBounds().contains(t.x,t.y);else return false}get boundingBox(){let t=this.ƀhu.getLocalBounds();return new Rectangle(new Vector(t.x,t.y),new Vector(t.x+t.width,t.y+t.height))}ignoreBounds(t=true){return t?(this.ƀhe||(this.ƀhe=this.ƀhu.calculateBounds),this.ƀhu.calculateBounds=()=>this.ƀhu._bounds.clear()):this.ƀhe&&(this.ƀhu.calculateBounds=this.ƀhe),this}setMirror(t=false){return this.mirror=t,this}get mirror(){return this.ƀgm}set mirror(t){this.ƀgm=t,this.ƀkk();}setFlip(t=false){return this.flip=t,this}get flip(){return this.ƀdd}set flip(t){this.ƀdd=t,this.ƀkk();}setScale(t){return this.scale=t,this}get scale(){return this.ƀin}set scale(t){this.ƀin=t,this.ƀkk();}setAspectRatio(t){return this.aspectRatio=t,this}get aspectRatio(){return this.ƀv}set aspectRatio(t){this.ƀv=t,this.ƀkk();}ƀkk(){this.ƀhu.scale.set(this.ƀin,this.ƀin),this.ƀv<1?this.ƀhu.scale.x*=this.ƀv:this.ƀv>1&&(this.ƀhu.scale.y/=this.ƀv),this.ƀgm&&(this.ƀhu.scale.x*=-1),this.ƀdd&&(this.ƀhu.scale.y*=-1);}};var O=2,Tt;(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";})(Tt||(Tt={}));var de=class{static{h(this,"GaussianValuesHelper");}static ƀdi(t,e){let i=e*e,r=1/(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=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.ƀbq(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=ArrayHelper.createIntegerArray(Math.ceil(t*.75)).map(r=>this.ƀdi(r,t*.4)),i=e.reduce((r,s)=>r+s,0);return i=i*2-e[0],e=e.map(r=>r/i),this.ƀbq(e)}}static ƀbq(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 Ci=class Ke extends L.Filter{static{h(this,"BlurFilterPass");}static ƀek(){return `
2
2
  attribute vec2 aVertexPosition;
3
3
  attribute vec2 aTextureCoord;
4
4
 
@@ -10,7 +10,7 @@ import {Action,ActionLib,SingleEvent,IDAttachable,SingleAction,Sequence,Variable
10
10
  gl_Position = vec4((projectionMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);
11
11
  vTextureCoord = aTextureCoord;
12
12
  }
13
- `}static ƀdr(t,e){let i=`
13
+ `}static ƀds(t,e){let i=`
14
14
  uniform sampler2D uSampler;
15
15
 
16
16
  varying vec2 vTextureCoord;
@@ -29,7 +29,7 @@ import {Action,ActionLib,SingleEvent,IDAttachable,SingleAction,Sequence,Variable
29
29
  iterate(${s}, ${NumberHelper.toFloatString(t[r].multiplier)}, gl_FragColor);
30
30
  iterate(${s} * -1.0, ${NumberHelper.toFloatString(t[r].multiplier)}, gl_FragColor);`;}return i+=`
31
31
  }
32
- `,i}constructor(t,e){super(Xe.ƀei(),Xe.ƀdr(pe.getValuesForLinearSamplingGauss(t),e)),this.ƀev=e,this.resolution=O;}apply(t,e,i,r){this.uniforms.pixelSize=this.ƀev?1/(e.width*O):1/(e.height*O),t.applyFilter(this,e,i,r);}},Tt=class extends L.Filter{static{h(this,"BlurFilter");}constructor(t=new Vector(2,2)){if(super(),this.ƀjp=t,this.resolution=O,this.ƀjp=t.multiplyNumber(O).floor(),this.ƀjp.x<0||this.ƀjp.y<0)throw new Error("BlurFilterLinearSampling: Strength * Resolution must be greater than 0");if(this.ƀjp.x>100||this.ƀjp.y>100)throw new Error("BlurFilterLinearSampling: Strength * Resolution cannot be higher than 100");this.ƀex=new Ri(this.ƀjp.x,true),this.ƀkn=new Ri(this.ƀjp.y,false),this.padding=Math.max(this.ƀjp.x,this.ƀjp.y);}apply(t,e,i,r){let s=t.getFilterTexture();this.ƀkn.apply(t,e,s,L.CLEAR_MODES.CLEAR),this.ƀex.apply(t,s,i,r),t.returnFilterTexture(s);}get blendMode(){return this.ƀex.blendMode}set blendMode(t){this.ƀex.blendMode=t,this.ƀkn.blendMode=t;}};var ue=class{static{h(this,"Filters");}get red(){return this.ƀib}set red(t){this.ƀib=t,this.ƀic();}get green(){return this.ƀem}set green(t){this.ƀem=t,this.ƀic();}get blue(){return this.ƀae}set blue(t){this.ƀae=t,this.ƀic();}get brightness(){return this.ƀaj}set brightness(t){this.ƀaj=t,this.ƀic();}get contrast(){return this.ƀbk}set contrast(t){this.ƀbk=t,this.ƀic();}get blur(){return this.ƀaf}set blur(t){let e=Comparator.isNumber(t)?new Vector(t,t):t;(this.ƀaf&&e&&!this.ƀaf.isEqual(e)||this.ƀaf&&!e||!this.ƀaf&&e)&&(this.ƀaf=e,this.ƀag&&(this.ƀag.destroy(),this.ƀag=void 0),e&&(this.ƀag=new Tt(e),this.ƀgu()));}constructor(t){this.ƀbg=t,this.ƀib=1,this.ƀem=1,this.ƀae=1,this.ƀaj=1,this.ƀbk=1,this.ƀgu();}removeColorFilter(){this.ƀaz?.destroy(),this.ƀaz=void 0,this.ƀgu();}ƀic(){this.ƀib===1&&this.ƀem===1&&this.ƀae===1&&this.ƀaj===1&&this.ƀbk===1?this.ƀaz&&(this.ƀaz.destroy(),this.ƀaz=void 0,this.ƀgu()):(this.ƀaz||(this.ƀaz=new L.ColorMatrixFilter,this.ƀaz.resolution=O,this.ƀgu()),this.ƀaz.matrix=[this.ƀib*this.ƀbk,0,0,0,this.ƀaj-1,0,this.ƀem*this.ƀbk,0,0,this.ƀaj-1,0,0,this.ƀae*this.ƀbk,0,this.ƀaj-1,0,0,0,1,0]);}ƀgu(){let t=[];this.ƀag&&t.push(this.ƀag),this.ƀaz&&t.push(this.ƀaz),this.ƀbg.filters=t;}};var u=class o extends ce{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 ue(this.ƀhs);}destroy(){this.destroyed||(super.destroy(),o.allContainers.delete(this.id),!this.ƀhs.destroyed&&this.ƀhs.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(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.ƀhs.addChildAt(this.ƀhs,0):i.addChildTo.ƀhs.addChild(this.ƀhs),r.cropOverflowingParts)if(i)this.ƀhs.mask=i.getBoundingMask().pixiSprite;else throw new Error("Container: cropOverflowingParts can only be used with Container parent!");return this}};var M=class{static{h(this,"GameAssets");}static{this.ƀij=new Map;}static{this.ƀp=0;}static getAsset(t){let e=this.ƀij.get(t);if(e)return e;throw new Error(`Game Assets: Resource not found! Key: "${t}"`)}static insertAsset(t,e){return e||(e=`a-${this.ƀp++}`),this.ƀij.set(e,t),e}static destroyAsset(t){let e=this.ƀij.get(t);e&&(e.destroy(true),this.ƀij.delete(t));}static async loadGameAssets(t){let e=new Map,i=[];t.forEach(s=>{if(!Comparator.isString(s.url))throw new Error(`GameAssets: source url should be a string: ${s.url}`);let n=e.get(s.url);n?n.push(s.id):(e.set(s.url,[s.id]),i.push({url:s.url,callback:h(a=>{if(a instanceof L.Texture&&(a.id=s.id),n=e.get(s.url),n)n.forEach(l=>{this.ƀij.set(l,a);});else throw new Error(`GameAssets: unexpected error, nameGroup is not found! "./"! ${s}`)},"callback")}));});let r=performance.now();return Promise.all(i.map(s=>L.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 Wt=class{static{h(this,"PositionConversionHelper");}static includeScaleInScreenPosition(t,e,i){if(e!==1){let r=Vector.fromTo(i,t).multiplyNumber(1/e);return i.add(r)}else return t}static normalizePolygonByAnchor(t,e,i){let r=new Vector(e.x*i.x,e.y*i.y);return t.map(s=>s.map(n=>r.to(Vector.fromVec2(n))))}},me=class{static{h(this,"CompositeHitArea");}constructor(t,e,i){this.ƀjc=t.map(r=>new L.Polygon(r.map(s=>new L.Point(s.x,s.y))));}contains(t,e){return this.ƀjc.some(i=>i.contains(t,e))}};var Ai;(function(o){o.BackgroundScreen="backgroundScreen",o.Background="background",o.Main="main",o.Foreground="foreground",o.ForegroundScreen="foregroundScreen";})(Ai||(Ai={}));var st;(function(o){o[o.Instant=1]="Instant",o[o.EaseInOut=2]="EaseInOut",o[o.EaseOut=3]="EaseOut";})(st||(st={}));var Dr=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},gt=new $,Et=class{static{h(this,"CameraGateway");}createCamera(){return gt.trigger("createCamera")}update(t,e){return gt.trigger("update",t,e)}setPosition(t){return gt.trigger("setPosition",t)}setTransition(t){return gt.trigger("setTransition",t)}getCameraPosition(){return gt.trigger("getCameraPosition")}};Et=Dr([d()],Et);var Br=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},ye=new $,Ut=class{static{h(this,"CameraViewGateway");}getLayers(){return ye.trigger("getLayers")}appear(t,e){return ye.trigger("appear",t,e)}};Ut=Br([d()],Ut);var J=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 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}},Gr=class{static{h(this,"AnimationLineer");}start(){}multiplierFunction(t){return J.lineer(t)}},Fr=class{static{h(this,"AnimationEaseIn");}start(){}multiplierFunction(t){return J.easeIn(t)}},_r=class{static{h(this,"AnimationEaseOut");}start(){}multiplierFunction(t){return J.easeOut(t)}},Vr=class{static{h(this,"AnimationEaseInOut");}start(){}multiplierFunction(t){return J.easeInOut(t)}},Lr=class{static{h(this,"AnimationEaseInOutCubic");}start(){}multiplierFunction(t){return J.easeInOutCubic(t)}},Oi=class{static{h(this,"AnimationFlicker");}start(){this.ƀka=new Array(10).fill(0),Random.integerBetween(0,9),this.ƀka[Random.integerBetween(0,9)]=Math.random(),Math.random()<.3&&(Random.integerBetween(0,9),this.ƀka[Random.integerBetween(0,9)]=Math.random()),Math.random()<.2&&(Random.integerBetween(0,9),this.ƀka[Random.integerBetween(0,9)]=Math.random());}multiplierFunction(t){let e=Math.floor(t*10);return this.ƀka[e]}},P=class{static{h(this,"Animations");}static{this.lineer=new Gr;}static{this.easeIn=new Fr;}static{this.easeOut=new _r;}static{this.easeInOut=new Vr;}static{this.easeInOutCubic=new Lr;}};var _;(function(o){o[o.ThrowError=1]="ThrowError",o[o.IgnoreNewAnimation=2]="IgnoreNewAnimation",o[o.CompletePrevious=3]="CompletePrevious";})(_||(_={}));var R;(function(o){o[o.ReturnToOriginal=1]="ReturnToOriginal",o[o.StayInCurrentState=2]="StayInCurrentState",o[o.JumpToEnd=3]="JumpToEnd",o[o.Loop=4]="Loop";})(R||(R={}));var D=class o{static{h(this,"Animator");}static{this.ƀk=new WeakMap;}static ƀdj(t){let e=o.ƀk.get(t);return e||(e=new MapToWeakRefs,o.ƀk.set(t,e)),e}get animating(){return this.ƀgz!==void 0}get target(){return this.ƀjr}get value(){return this.ƀkj||(this.ƀkj=new Variable(this.ƀjr)),this.ƀkj.notifier}constructor(t,e,i){this.ƀfn=false,this.ƀjd=false,this.ƀjr=t,this.ƀhb={duration:200,animation:P.lineer,reAnimateHandling:_.ThrowError,completionHandling:R.StayInCurrentState,...i},this.ƀl=Comparator.isArray(e)?e:[e],this.ƀga(t,this.ƀl);}animate(t,e){let i={...this.ƀhb,...e},r=this.ƀgz;if(this.ƀgz)switch(i.reAnimateHandling){case _.ThrowError:throw new Error("Animator: new animation triggered while another is not complete yet.");case _.IgnoreNewAnimation:return SingleEvent.instant();case _.CompletePrevious:this.ƀix(i.completionHandling,this.ƀgz.ƀhx,true);break;default:{throw new Error(`Animator: unknown re-animate handling type: "${i.reAnimateHandling}"`)}}return SingleEvent.create(n=>{this.ƀfn&&(this.ƀjd=true);let a=this.ƀl.reduce((c,p)=>(c[p]={ƀjl:this.ƀjr[p],ƀjt:t[p]},c),{}),l={ƀcs:i.duration,ƀct:0,ƀhx:a,ƀbe:i.completionHandling,ƀm:i.animation,ƀbd:n};if(l.ƀbe!==R.Loop&&this.ƀfj(l)){this.ƀgz=void 0,n(),r?.ƀbd(),this.ƀgz||(this.ƀkg?.destroy(),this.ƀkg=void 0);return}else l.ƀm.start();return this.ƀgz=l,this.ƀcv(),r?.ƀbd(),()=>{this.ƀgz===l&&(this.ƀjr instanceof Attachable&&this.ƀjr.destroyed||this.ƀix(l.ƀbe,l.ƀhx,true),this.ƀgz=void 0,this.ƀkg?.destroy(),this.ƀkg=void 0);}})}set(t){let e=false;for(let i=0;i<this.ƀl.length;i++){let r=this.ƀl[i];this.ƀjr[r]!==t[r]&&(e=true,this.ƀjr[r]=t[r]);}e&&this.ƀkj?.set(this.ƀjr),this.ƀgz?.ƀbd();}completeAnimation(t){if(this.ƀgz){t=t??this.ƀgz.ƀbe,this.ƀix(t,this.ƀgz.ƀhx,true);let e=this.ƀgz.ƀbd;this.ƀgz=void 0,e();}}ƀcv(){this.ƀkg||(this.ƀkg=y.beforeSceneUpdateAction.subscribe(t=>{this.ƀfn=true;try{let e=this.ƀgz;if(!e)return;e.ƀct+=t.delta;let i=e.ƀct>=e.ƀcs;if(i)if(e.ƀbe===R.Loop)e.ƀct%=e.ƀcs,e.ƀm.start(),i=!1;else {this.ƀix(e.ƀbe,e.ƀhx,!1),this.ƀgz=void 0,e.ƀbd(),this.ƀgz||(this.ƀkg?.destroy(),this.ƀkg=void 0);return}if(!i){let r=e.ƀm.multiplierFunction(e.ƀct/e.ƀcs),s=!1;for(let n=0;n<this.ƀl.length;n++){let a=this.ƀl[n],l=e.ƀhx[a],p=(l.ƀjt-l.ƀjl)*r+l.ƀjl;p!==this.ƀjr[a]&&(s=!0,this.ƀjr[a]=p);}s&&this.ƀkj?.set(this.ƀjr);}}finally{this.ƀfn=false,this.ƀjd&&(this.ƀjd=false,this.ƀkg?.destroy(),this.ƀkg=void 0,this.ƀcv());}}).attachToRoot());}ƀfj(t){for(let e=0;e<this.ƀl.length;e++){let i=this.ƀl[e];if(this.ƀjr[i]!==t.ƀhx[i].ƀjt)return false}return true}ƀix(t,e,i){switch(t){case R.ReturnToOriginal:this.ƀik(e);break;case R.StayInCurrentState:i||this.ƀfq(e);break;case R.JumpToEnd:this.ƀfq(e);break;case R.Loop:this.ƀik(e);break;default:{throw new Error(`Animator: unknown completion handling type: "${t}"`)}}}ƀik(t){let e=false;for(let i=0;i<this.ƀl.length;i++){let r=this.ƀl[i];this.ƀjr[r]!==t[r].ƀjl&&(e=true,this.ƀjr[r]=t[r].ƀjl);}e&&this.ƀkj?.set(this.ƀjr);}ƀfq(t){let e=false;for(let i=0;i<this.ƀl.length;i++){let r=this.ƀl[i];this.ƀjr[r]!==t[r].ƀjt&&(e=true,this.ƀjr[r]=t[r].ƀjt);}e&&this.ƀkj?.set(this.ƀjr);}ƀga(t,e){let i=o.ƀdj(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);}}};var I;(function(o){o[o.Idle=1]="Idle",o[o.Transitioning=2]="Transitioning",o[o.Reverting=3]="Reverting";})(I||(I={}));var we=class extends Attachable{static{h(this,"StateAnimation");}get currentState(){return {value:this.ƀj.value,state:this.ƀjm,nextState:this.ƀgo,queuedState:this.ƀhy,animationState:this.ƀn}}constructor(t){super(),this.ƀj={value:0},this.ƀn=I.Idle,this.ƀgw=new Action,this.ƀgy=new Action,this.ƀhb={duration:500,animation:P.lineer,...t},this.ƀo=new D(this.ƀj,"value",{duration:this.ƀhb.duration,animation:this.ƀhb.animation,reAnimateHandling:_.CompletePrevious,completionHandling:R.StayInCurrentState}),this.ƀo.value.subscribe(()=>{this.ƀj.value!==1&&this.ƀj.value!==0&&this.ƀgy.trigger(this.ƀj.value);}).attach(this);}setState(t,e){if(this.ƀjm===void 0)this.ƀjm=t,this.ƀgw.trigger({state:this.ƀjm,nextState:this.ƀgo}),this.ƀgy.trigger(this.ƀj.value);else if(e?.instant)this.ƀo.completeAnimation(),this.ƀn=I.Idle,this.ƀjm=t,this.ƀgo=void 0,this.ƀj.value=0,this.ƀgw.trigger({state:this.ƀjm,nextState:this.ƀgo}),this.ƀgy.trigger(this.ƀj.value);else switch(this.ƀn){case I.Idle:t!==this.ƀjm&&(this.ƀn=I.Transitioning,this.ƀgo=t,this.ƀj.value=0,this.ƀgw.trigger({state:this.ƀjm,nextState:this.ƀgo}),this.ƀgy.trigger(this.ƀj.value),this.ƀo.animate({value:1}).tap(()=>this.ƀgs()).attach(this));break;case I.Transitioning:t!==this.ƀgo&&(t===this.ƀjm?(this.ƀn=I.Reverting,this.ƀo.animate({value:0},{duration:this.ƀj.value*this.ƀhb.duration}).tap(()=>this.ƀgs()).attach(this)):this.ƀhy=t);break;case I.Reverting:t!==this.ƀjm&&(t===this.ƀgo?(this.ƀn=I.Transitioning,this.ƀo.animate({value:1},{duration:(1-this.ƀj.value)*this.ƀhb.duration}).tap(()=>this.ƀgs()).attach(this)):this.ƀhy=t);break;default:{this.ƀn;throw new Error(`Unexpected case! "${this.ƀn}"`)}}}ƀgs(){switch(this.ƀn){case I.Transitioning:this.ƀj.value===1&&(this.ƀj.value=0,this.ƀhy!==void 0?(this.ƀn=I.Transitioning,this.ƀjm=this.ƀgo,this.ƀgo=this.ƀhy,this.ƀhy=void 0,this.ƀgw.trigger({state:this.ƀjm,nextState:this.ƀgo}),this.ƀo.animate({value:1}).tap(()=>this.ƀgs()).attach(this)):(this.ƀn=I.Idle,this.ƀjm=this.ƀgo,this.ƀgo=void 0,this.ƀgw.trigger({state:this.ƀjm,nextState:this.ƀgo})),this.ƀgy.trigger(this.ƀj.value));break;case I.Reverting:if(this.ƀjm===void 0)throw new Error("StateAnimation: state must be defined when reverting!");this.ƀj.value===0&&(this.ƀhy!==void 0?(this.ƀn=I.Transitioning,this.ƀgo=this.ƀhy,this.ƀhy=void 0,this.ƀj.value=0,this.ƀgw.trigger({state:this.ƀjm,nextState:this.ƀgo}),this.ƀo.animate({value:1}).tap(()=>this.ƀgs()).attach(this)):(this.ƀn=I.Idle,this.ƀgo=void 0,this.ƀj.value=0,this.ƀgw.trigger({state:this.ƀjm,nextState:this.ƀgo})),this.ƀgy.trigger(this.ƀj.value));break;case I.Idle:break;default:{this.ƀn;throw new Error(`Unexpected case! "${this.ƀn}"`)}}}onStateChange(t){return this.ƀgw.subscribe(e=>t(e.state,e.nextState)).attach(this),this}onValueChange(t){return this.ƀgy.subscribe(e=>t(e)).attach(this),this}};var w;(function(o){o[o.Hidden=1]="Hidden",o[o.Visible=2]="Visible",o[o.Appearing=3]="Appearing",o[o.Disappearing=4]="Disappearing",o[o.DisappearToChange=5]="DisappearToChange";})(w||(w={}));var xe=class extends Attachable{static{h(this,"FadeInStateAnimation");}get currentState(){return {value:this.ƀj.value,state:this.ƀjm,queuedState:this.ƀhy,animationState:this.ƀn}}constructor(t){super(),this.ƀj={value:0},this.ƀn=w.Hidden,this.ƀgw=new Action,this.ƀgy=new Action,this.ƀhb={duration:500,animation:P.lineer,...t},this.ƀj.value=0,this.ƀo=new D(this.ƀj,"value",{duration:this.ƀhb.duration,animation:this.ƀhb.animation,reAnimateHandling:_.CompletePrevious,completionHandling:R.StayInCurrentState}),this.ƀo.value.subscribe(()=>{this.ƀj.value!==1&&this.ƀj.value!==0&&this.ƀgy.trigger(this.ƀj.value);}).attach(this);}setState(t,e){if(e?.instant){this.ƀo.completeAnimation(),this.ƀn=t!==void 0?w.Visible:w.Hidden,this.ƀhy=void 0;let i=t!==void 0?1:0,r=this.ƀjm!==t;r&&(this.ƀjm=t,this.ƀgw.trigger(this.ƀjm)),(r||this.ƀj.value!==i)&&(this.ƀj.value=i,this.ƀgy.trigger(this.ƀj.value));}else switch(this.ƀn){case w.Hidden:t!==void 0&&(this.ƀn=w.Appearing,this.ƀhy=void 0,this.ƀjm=t,this.ƀgw.trigger(this.ƀjm),this.ƀo.animate({value:1}).tap(()=>this.ƀgs()).attach(this));break;case w.Visible:t===void 0?(this.ƀn=w.Disappearing,this.ƀhy=void 0,this.ƀo.animate({value:0}).tap(()=>this.ƀgs()).attach(this)):t!==this.ƀjm&&(this.ƀn=w.DisappearToChange,this.ƀhy=t,this.ƀo.animate({value:0}).tap(()=>this.ƀgs()).attach(this));break;case w.Appearing:t===void 0?(this.ƀn=w.Disappearing,this.ƀhy=void 0,this.ƀo.animate({value:0},{duration:this.ƀj.value*this.ƀhb.duration}).tap(()=>this.ƀgs()).attach(this)):t!==this.ƀjm&&(this.ƀj.value>0?(this.ƀn=w.DisappearToChange,this.ƀhy=t,this.ƀo.animate({value:0},{duration:this.ƀj.value*this.ƀhb.duration}).tap(()=>this.ƀgs()).attach(this)):(this.ƀhy=void 0,this.ƀjm=t,this.ƀgw.trigger(this.ƀjm)));break;case w.Disappearing:t===this.ƀjm?(this.ƀn=w.Appearing,this.ƀo.animate({value:1},{duration:(1-this.ƀj.value)*this.ƀhb.duration}).tap(()=>this.ƀgs()).attach(this)):t!==void 0&&(this.ƀn=w.DisappearToChange,this.ƀhy=t);break;case w.DisappearToChange:t===void 0?(this.ƀn=w.Disappearing,this.ƀhy=void 0):t===this.ƀjm?(this.ƀn=w.Appearing,this.ƀhy=void 0,this.ƀo.animate({value:1},{duration:(1-this.ƀj.value)*this.ƀhb.duration}).tap(()=>this.ƀgs()).attach(this)):t!==this.ƀhy&&(this.ƀhy=t);break;default:{this.ƀn;throw new Error(`Unexpected case! "${this.ƀn}"`)}}}ƀgs(){switch(this.ƀn){case w.Appearing:this.ƀj.value===1&&(this.ƀn=w.Visible,this.ƀgy.trigger(this.ƀj.value));break;case w.Disappearing:if(this.ƀhy!==void 0)throw new Error("FadeInStateAnimation: Unexpected state, disappearing should not have a queued value");this.ƀj.value===0&&(this.ƀn=w.Hidden,this.ƀjm=void 0,this.ƀgw.trigger(this.ƀjm),this.ƀgy.trigger(this.ƀj.value));break;case w.DisappearToChange:if(this.ƀhy===void 0)throw new Error("FadeInStateAnimation: Unexpected state, disappearToChange should always have a queued value");this.ƀj.value===0&&(this.ƀn=w.Appearing,this.ƀjm=this.ƀhy,this.ƀhy=void 0,this.ƀgw.trigger(this.ƀjm),this.ƀgy.trigger(this.ƀj.value),this.ƀo.animate({value:1}).tap(()=>this.ƀgs()).attach(this));break;case w.Hidden:case w.Visible:return;default:{this.ƀn;throw new Error(`Unexpected case! "${this.ƀn}"`)}}}onStateChange(t){return this.ƀgw.subscribe(e=>t(e)).attach(this),this}onValueChange(t){return this.ƀgy.subscribe(e=>t(e)).attach(this),this}};var Gi=class extends u{static{h(this,"FadeInContent");}constructor(t,e){super(),this.ƀbu=t;let i={duration:200,animation:P.easeInOut,...e};this.alpha=0,this.ƀjn=new xe(i).onStateChange(r=>{this.ƀbh?.destroy(),this.ƀbh=void 0,r!==void 0&&(this.ƀbh=new u().displayParent(this).attach(this),this.ƀbu({state:r,container:this.ƀbh}));}).onValueChange(r=>{this.alpha=r;}).attach(this);}setState(t,e){return this.ƀjn.setState(t,e),this}};var be=class o extends L.Filter{static{h(this,"ExpandWithColorFilter");}static ƀei(){return `
32
+ `,i}constructor(t,e){super(Ke.ƀek(),Ke.ƀds(de.getValuesForLinearSamplingGauss(t),e)),this.ƀex=e,this.resolution=O;}apply(t,e,i,r){this.uniforms.pixelSize=this.ƀex?1/(e.width*O):1/(e.height*O),t.applyFilter(this,e,i,r);}},Et=class extends L.Filter{static{h(this,"BlurFilter");}constructor(t=new Vector(2,2)){if(super(),this.ƀjr=t,this.resolution=O,this.ƀjr=t.multiplyNumber(O).floor(),this.ƀjr.x<0||this.ƀjr.y<0)throw new Error("BlurFilterLinearSampling: Strength * Resolution must be greater than 0");if(this.ƀjr.x>100||this.ƀjr.y>100)throw new Error("BlurFilterLinearSampling: Strength * Resolution cannot be higher than 100");this.ƀez=new Ci(this.ƀjr.x,true),this.ƀkp=new Ci(this.ƀjr.y,false),this.padding=Math.max(this.ƀjr.x,this.ƀjr.y);}apply(t,e,i,r){let s=t.getFilterTexture();this.ƀkp.apply(t,e,s,L.CLEAR_MODES.CLEAR),this.ƀez.apply(t,s,i,r),t.returnFilterTexture(s);}get blendMode(){return this.ƀez.blendMode}set blendMode(t){this.ƀez.blendMode=t,this.ƀkp.blendMode=t;}};var fe=class{static{h(this,"Filters");}get red(){return this.ƀid}set red(t){this.ƀid=t,this.ƀie();}get green(){return this.ƀeo}set green(t){this.ƀeo=t,this.ƀie();}get blue(){return this.ƀae}set blue(t){this.ƀae=t,this.ƀie();}get brightness(){return this.ƀaj}set brightness(t){this.ƀaj=t,this.ƀie();}get contrast(){return this.ƀbk}set contrast(t){this.ƀbk=t,this.ƀie();}get blur(){return this.ƀaf}set blur(t){let e=Comparator.isNumber(t)?new Vector(t,t):t;(this.ƀaf&&e&&!this.ƀaf.isEqual(e)||this.ƀaf&&!e||!this.ƀaf&&e)&&(this.ƀaf=e,this.ƀag&&(this.ƀag.destroy(),this.ƀag=void 0),e&&(this.ƀag=new Et(e),this.ƀgw()));}constructor(t){this.ƀbg=t,this.ƀid=1,this.ƀeo=1,this.ƀae=1,this.ƀaj=1,this.ƀbk=1,this.ƀgw();}removeColorFilter(){this.ƀaz?.destroy(),this.ƀaz=void 0,this.ƀgw();}ƀie(){this.ƀid===1&&this.ƀeo===1&&this.ƀae===1&&this.ƀaj===1&&this.ƀbk===1?this.ƀaz&&(this.ƀaz.destroy(),this.ƀaz=void 0,this.ƀgw()):(this.ƀaz||(this.ƀaz=new L.ColorMatrixFilter,this.ƀaz.resolution=O,this.ƀgw()),this.ƀaz.matrix=[this.ƀid*this.ƀbk,0,0,0,this.ƀaj-1,0,this.ƀeo*this.ƀbk,0,0,this.ƀaj-1,0,0,this.ƀae*this.ƀbk,0,this.ƀaj-1,0,0,0,1,0]);}ƀgw(){let t=[];this.ƀag&&t.push(this.ƀag),this.ƀaz&&t.push(this.ƀaz),this.ƀbg.filters=t;}};var u=class o extends pe{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 fe(this.ƀhu);}destroy(){this.destroyed||(super.destroy(),o.allContainers.delete(this.id),!this.ƀhu.destroyed&&this.ƀhu.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(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.ƀhu.addChildAt(this.ƀhu,0):i.addChildTo.ƀhu.addChild(this.ƀhu),r.cropOverflowingParts)if(i)this.ƀhu.mask=i.getBoundingMask().pixiSprite;else throw new Error("Container: cropOverflowingParts can only be used with Container parent!");return this}};var M=class{static{h(this,"GameAssets");}static{this.ƀil=new Map;}static{this.ƀp=0;}static getAsset(t){let e=this.ƀil.get(t);if(e)return e;throw new Error(`Game Assets: Resource not found! Key: "${t}"`)}static insertAsset(t,e){return e||(e=`a-${this.ƀp++}`),this.ƀil.set(e,t),e}static destroyAsset(t){let e=this.ƀil.get(t);e&&(e.destroy(true),this.ƀil.delete(t));}static async loadGameAssets(t){let e=new Map,i=[];t.forEach(s=>{if(!Comparator.isString(s.url))throw new Error(`GameAssets: source url should be a string: ${s.url}`);let n=e.get(s.url);n?n.push(s.id):(e.set(s.url,[s.id]),i.push({url:s.url,callback:h(a=>{if(a instanceof L.Texture&&(a.id=s.id),n=e.get(s.url),n)n.forEach(l=>{this.ƀil.set(l,a);});else throw new Error(`GameAssets: unexpected error, nameGroup is not found! "./"! ${s}`)},"callback")}));});let r=performance.now();return Promise.all(i.map(s=>L.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 Ut=class{static{h(this,"PositionConversionHelper");}static includeScaleInScreenPosition(t,e,i){if(e!==1){let r=Vector.fromTo(i,t).multiplyNumber(1/e);return i.add(r)}else return t}static normalizePolygonByAnchor(t,e,i){let r=new Vector(e.x*i.x,e.y*i.y);return t.map(s=>s.map(n=>r.to(Vector.fromVec2(n))))}},ge=class{static{h(this,"CompositeHitArea");}constructor(t,e,i){this.ƀje=t.map(r=>new L.Polygon(r.map(s=>new L.Point(s.x,s.y))));}contains(t,e){return this.ƀje.some(i=>i.contains(t,e))}};var Ai;(function(o){o.BackgroundScreen="backgroundScreen",o.Background="background",o.Main="main",o.Foreground="foreground",o.ForegroundScreen="foregroundScreen";})(Ai||(Ai={}));var st;(function(o){o[o.Instant=1]="Instant",o[o.EaseInOut=2]="EaseInOut",o[o.EaseOut=3]="EaseOut";})(st||(st={}));var Br=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},gt=new $,Rt=class{static{h(this,"CameraGateway");}createCamera(){return gt.trigger("createCamera")}update(t,e){return gt.trigger("update",t,e)}setPosition(t){return gt.trigger("setPosition",t)}setTransition(t){return gt.trigger("setTransition",t)}getCameraPosition(){return gt.trigger("getCameraPosition")}};Rt=Br([d()],Rt);var Gr=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},we=new $,$t=class{static{h(this,"CameraViewGateway");}getLayers(){return we.trigger("getLayers")}appear(t,e){return we.trigger("appear",t,e)}};$t=Gr([d()],$t);var z=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 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}},Fr=class{static{h(this,"AnimationLineer");}start(){}multiplierFunction(t){return z.lineer(t)}},_r=class{static{h(this,"AnimationEaseIn");}start(){}multiplierFunction(t){return z.easeIn(t)}},Vr=class{static{h(this,"AnimationEaseOut");}start(){}multiplierFunction(t){return z.easeOut(t)}},Lr=class{static{h(this,"AnimationEaseInOut");}start(){}multiplierFunction(t){return z.easeInOut(t)}},Nr=class{static{h(this,"AnimationEaseInOutCubic");}start(){}multiplierFunction(t){return z.easeInOutCubic(t)}},jr=class{static{h(this,"AnimationBlink");}start(){}multiplierFunction(t){return z.blink(t)}},Oi=class{static{h(this,"AnimationFlicker");}start(){this.ƀkc=new Array(10).fill(0),Random.integerBetween(0,9),this.ƀkc[Random.integerBetween(0,9)]=Math.random(),Math.random()<.3&&(Random.integerBetween(0,9),this.ƀkc[Random.integerBetween(0,9)]=Math.random()),Math.random()<.2&&(Random.integerBetween(0,9),this.ƀkc[Random.integerBetween(0,9)]=Math.random());}multiplierFunction(t){let e=Math.floor(t*10);return this.ƀkc[e]}},S=class{static{h(this,"Animations");}static{this.lineer=new Fr;}static{this.easeIn=new _r;}static{this.easeOut=new Vr;}static{this.easeInOut=new Lr;}static{this.easeInOutCubic=new Nr;}static{this.blink=new jr;}};var _;(function(o){o[o.ThrowError=1]="ThrowError",o[o.IgnoreNewAnimation=2]="IgnoreNewAnimation",o[o.CompletePrevious=3]="CompletePrevious";})(_||(_={}));var C;(function(o){o[o.ReturnToOriginal=1]="ReturnToOriginal",o[o.StayInCurrentState=2]="StayInCurrentState",o[o.JumpToEnd=3]="JumpToEnd",o[o.Loop=4]="Loop";})(C||(C={}));var D=class o{static{h(this,"Animator");}static{this.ƀk=new WeakMap;}static ƀdk(t){let e=o.ƀk.get(t);return e||(e=new MapToWeakRefs,o.ƀk.set(t,e)),e}get animating(){return this.ƀhb!==void 0}get target(){return this.ƀjt}get value(){return this.ƀkl||(this.ƀkl=new Variable(this.ƀjt)),this.ƀkl.notifier}constructor(t,e,i){this.ƀfp=false,this.ƀjf=false,this.ƀjt=t,this.ƀhd={duration:200,animation:S.lineer,reAnimateHandling:_.ThrowError,completionHandling:C.StayInCurrentState,...i},this.ƀl=Comparator.isArray(e)?e:[e],this.ƀgc(t,this.ƀl);}animate(t,e){let i={...this.ƀhd,...e},r=this.ƀhb;if(this.ƀhb)switch(i.reAnimateHandling){case _.ThrowError:throw new Error("Animator: new animation triggered while another is not complete yet.");case _.IgnoreNewAnimation:return SingleEvent.instant();case _.CompletePrevious:this.ƀiz(i.completionHandling,this.ƀhb.ƀhz,true);break;default:{throw new Error(`Animator: unknown re-animate handling type: "${i.reAnimateHandling}"`)}}return SingleEvent.create(n=>{this.ƀfp&&(this.ƀjf=true);let a=this.ƀl.reduce((c,p)=>(c[p]={ƀjn:this.ƀjt[p],ƀjv:t[p]},c),{}),l={ƀcs:i.duration,ƀct:0,ƀhz:a,ƀbe:i.completionHandling,ƀm:i.animation,ƀbd:n};if(l.ƀbe!==C.Loop&&this.ƀfl(l)){this.ƀhb=void 0,n(),r?.ƀbd(),this.ƀhb||(this.ƀki?.destroy(),this.ƀki=void 0);return}else l.ƀm.start();return this.ƀhb=l,this.ƀcw(),r?.ƀbd(),()=>{this.ƀhb===l&&(this.ƀjt instanceof Attachable&&this.ƀjt.destroyed||this.ƀiz(l.ƀbe,l.ƀhz,true),this.ƀhb=void 0,this.ƀki?.destroy(),this.ƀki=void 0);}})}set(t){let e=false;for(let i=0;i<this.ƀl.length;i++){let r=this.ƀl[i];this.ƀjt[r]!==t[r]&&(e=true,this.ƀjt[r]=t[r]);}e&&this.ƀkl?.set(this.ƀjt),this.ƀhb?.ƀbd();}completeAnimation(t){if(this.ƀhb){t=t??this.ƀhb.ƀbe,this.ƀiz(t,this.ƀhb.ƀhz,true);let e=this.ƀhb.ƀbd;this.ƀhb=void 0,e();}}ƀcw(){this.ƀki||(this.ƀki=y.beforeSceneUpdateAction.subscribe(t=>{this.ƀfp=true;try{let e=this.ƀhb;if(!e)return;e.ƀct+=t.delta;let i=e.ƀct>=e.ƀcs;if(i)if(e.ƀbe===C.Loop)e.ƀct%=e.ƀcs,e.ƀm.start(),i=!1;else {this.ƀiz(e.ƀbe,e.ƀhz,!1),this.ƀhb=void 0,e.ƀbd(),this.ƀhb||(this.ƀki?.destroy(),this.ƀki=void 0);return}if(!i){let r=e.ƀm.multiplierFunction(e.ƀct/e.ƀcs),s=!1;for(let n=0;n<this.ƀl.length;n++){let a=this.ƀl[n],l=e.ƀhz[a],p=(l.ƀjv-l.ƀjn)*r+l.ƀjn;p!==this.ƀjt[a]&&(s=!0,this.ƀjt[a]=p);}s&&this.ƀkl?.set(this.ƀjt);}}finally{this.ƀfp=false,this.ƀjf&&(this.ƀjf=false,this.ƀki?.destroy(),this.ƀki=void 0,this.ƀcw());}}).attachToRoot());}ƀfl(t){for(let e=0;e<this.ƀl.length;e++){let i=this.ƀl[e];if(this.ƀjt[i]!==t.ƀhz[i].ƀjv)return false}return true}ƀiz(t,e,i){switch(t){case C.ReturnToOriginal:this.ƀim(e);break;case C.StayInCurrentState:i||this.ƀfs(e);break;case C.JumpToEnd:this.ƀfs(e);break;case C.Loop:this.ƀim(e);break;default:{throw new Error(`Animator: unknown completion handling type: "${t}"`)}}}ƀim(t){let e=false;for(let i=0;i<this.ƀl.length;i++){let r=this.ƀl[i];this.ƀjt[r]!==t[r].ƀjn&&(e=true,this.ƀjt[r]=t[r].ƀjn);}e&&this.ƀkl?.set(this.ƀjt);}ƀfs(t){let e=false;for(let i=0;i<this.ƀl.length;i++){let r=this.ƀl[i];this.ƀjt[r]!==t[r].ƀjv&&(e=true,this.ƀjt[r]=t[r].ƀjv);}e&&this.ƀkl?.set(this.ƀjt);}ƀgc(t,e){let i=o.ƀdk(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);}}};var I;(function(o){o[o.Idle=1]="Idle",o[o.Transitioning=2]="Transitioning",o[o.Reverting=3]="Reverting";})(I||(I={}));var xe=class extends Attachable{static{h(this,"StateAnimation");}get currentState(){return {value:this.ƀj.value,state:this.ƀjo,nextState:this.ƀgq,queuedState:this.ƀia,animationState:this.ƀn}}constructor(t){super(),this.ƀj={value:0},this.ƀn=I.Idle,this.ƀgy=new Action,this.ƀha=new Action,this.ƀhd={duration:500,animation:S.lineer,...t},this.ƀo=new D(this.ƀj,"value",{duration:this.ƀhd.duration,animation:this.ƀhd.animation,reAnimateHandling:_.CompletePrevious,completionHandling:C.StayInCurrentState}),this.ƀo.value.subscribe(()=>{this.ƀj.value!==1&&this.ƀj.value!==0&&this.ƀha.trigger(this.ƀj.value);}).attach(this);}setState(t,e){if(this.ƀjo===void 0)this.ƀjo=t,this.ƀgy.trigger({state:this.ƀjo,nextState:this.ƀgq}),this.ƀha.trigger(this.ƀj.value);else if(e?.instant)this.ƀo.completeAnimation(),this.ƀn=I.Idle,this.ƀjo=t,this.ƀgq=void 0,this.ƀj.value=0,this.ƀgy.trigger({state:this.ƀjo,nextState:this.ƀgq}),this.ƀha.trigger(this.ƀj.value);else switch(this.ƀn){case I.Idle:t!==this.ƀjo&&(this.ƀn=I.Transitioning,this.ƀgq=t,this.ƀj.value=0,this.ƀgy.trigger({state:this.ƀjo,nextState:this.ƀgq}),this.ƀha.trigger(this.ƀj.value),this.ƀo.animate({value:1}).tap(()=>this.ƀgu()).attach(this));break;case I.Transitioning:t!==this.ƀgq&&(t===this.ƀjo?(this.ƀn=I.Reverting,this.ƀo.animate({value:0},{duration:this.ƀj.value*this.ƀhd.duration}).tap(()=>this.ƀgu()).attach(this)):this.ƀia=t);break;case I.Reverting:t!==this.ƀjo&&(t===this.ƀgq?(this.ƀn=I.Transitioning,this.ƀo.animate({value:1},{duration:(1-this.ƀj.value)*this.ƀhd.duration}).tap(()=>this.ƀgu()).attach(this)):this.ƀia=t);break;default:{this.ƀn;throw new Error(`Unexpected case! "${this.ƀn}"`)}}}ƀgu(){switch(this.ƀn){case I.Transitioning:this.ƀj.value===1&&(this.ƀj.value=0,this.ƀia!==void 0?(this.ƀn=I.Transitioning,this.ƀjo=this.ƀgq,this.ƀgq=this.ƀia,this.ƀia=void 0,this.ƀgy.trigger({state:this.ƀjo,nextState:this.ƀgq}),this.ƀo.animate({value:1}).tap(()=>this.ƀgu()).attach(this)):(this.ƀn=I.Idle,this.ƀjo=this.ƀgq,this.ƀgq=void 0,this.ƀgy.trigger({state:this.ƀjo,nextState:this.ƀgq})),this.ƀha.trigger(this.ƀj.value));break;case I.Reverting:if(this.ƀjo===void 0)throw new Error("StateAnimation: state must be defined when reverting!");this.ƀj.value===0&&(this.ƀia!==void 0?(this.ƀn=I.Transitioning,this.ƀgq=this.ƀia,this.ƀia=void 0,this.ƀj.value=0,this.ƀgy.trigger({state:this.ƀjo,nextState:this.ƀgq}),this.ƀo.animate({value:1}).tap(()=>this.ƀgu()).attach(this)):(this.ƀn=I.Idle,this.ƀgq=void 0,this.ƀj.value=0,this.ƀgy.trigger({state:this.ƀjo,nextState:this.ƀgq})),this.ƀha.trigger(this.ƀj.value));break;case I.Idle:break;default:{this.ƀn;throw new Error(`Unexpected case! "${this.ƀn}"`)}}}onStateChange(t){return this.ƀgy.subscribe(e=>t(e.state,e.nextState)).attach(this),this}onValueChange(t){return this.ƀha.subscribe(e=>t(e)).attach(this),this}};var x;(function(o){o[o.Hidden=1]="Hidden",o[o.Visible=2]="Visible",o[o.Appearing=3]="Appearing",o[o.Disappearing=4]="Disappearing",o[o.DisappearToChange=5]="DisappearToChange";})(x||(x={}));var ve=class extends Attachable{static{h(this,"FadeInStateAnimation");}get currentState(){return {value:this.ƀj.value,state:this.ƀjo,queuedState:this.ƀia,animationState:this.ƀn}}constructor(t){super(),this.ƀj={value:0},this.ƀn=x.Hidden,this.ƀgy=new Action,this.ƀha=new Action,this.ƀhd={duration:500,animation:S.lineer,...t},this.ƀj.value=0,this.ƀo=new D(this.ƀj,"value",{duration:this.ƀhd.duration,animation:this.ƀhd.animation,reAnimateHandling:_.CompletePrevious,completionHandling:C.StayInCurrentState}),this.ƀo.value.subscribe(()=>{this.ƀj.value!==1&&this.ƀj.value!==0&&this.ƀha.trigger(this.ƀj.value);}).attach(this);}setState(t,e){if(e?.instant){this.ƀo.completeAnimation(),this.ƀn=t!==void 0?x.Visible:x.Hidden,this.ƀia=void 0;let i=t!==void 0?1:0,r=this.ƀjo!==t;r&&(this.ƀjo=t,this.ƀgy.trigger(this.ƀjo)),(r||this.ƀj.value!==i)&&(this.ƀj.value=i,this.ƀha.trigger(this.ƀj.value));}else switch(this.ƀn){case x.Hidden:t!==void 0&&(this.ƀn=x.Appearing,this.ƀia=void 0,this.ƀjo=t,this.ƀgy.trigger(this.ƀjo),this.ƀo.animate({value:1}).tap(()=>this.ƀgu()).attach(this));break;case x.Visible:t===void 0?(this.ƀn=x.Disappearing,this.ƀia=void 0,this.ƀo.animate({value:0}).tap(()=>this.ƀgu()).attach(this)):t!==this.ƀjo&&(this.ƀn=x.DisappearToChange,this.ƀia=t,this.ƀo.animate({value:0}).tap(()=>this.ƀgu()).attach(this));break;case x.Appearing:t===void 0?(this.ƀn=x.Disappearing,this.ƀia=void 0,this.ƀo.animate({value:0},{duration:this.ƀj.value*this.ƀhd.duration}).tap(()=>this.ƀgu()).attach(this)):t!==this.ƀjo&&(this.ƀj.value>0?(this.ƀn=x.DisappearToChange,this.ƀia=t,this.ƀo.animate({value:0},{duration:this.ƀj.value*this.ƀhd.duration}).tap(()=>this.ƀgu()).attach(this)):(this.ƀia=void 0,this.ƀjo=t,this.ƀgy.trigger(this.ƀjo)));break;case x.Disappearing:t===this.ƀjo?(this.ƀn=x.Appearing,this.ƀo.animate({value:1},{duration:(1-this.ƀj.value)*this.ƀhd.duration}).tap(()=>this.ƀgu()).attach(this)):t!==void 0&&(this.ƀn=x.DisappearToChange,this.ƀia=t);break;case x.DisappearToChange:t===void 0?(this.ƀn=x.Disappearing,this.ƀia=void 0):t===this.ƀjo?(this.ƀn=x.Appearing,this.ƀia=void 0,this.ƀo.animate({value:1},{duration:(1-this.ƀj.value)*this.ƀhd.duration}).tap(()=>this.ƀgu()).attach(this)):t!==this.ƀia&&(this.ƀia=t);break;default:{this.ƀn;throw new Error(`Unexpected case! "${this.ƀn}"`)}}}ƀgu(){switch(this.ƀn){case x.Appearing:this.ƀj.value===1&&(this.ƀn=x.Visible,this.ƀha.trigger(this.ƀj.value));break;case x.Disappearing:if(this.ƀia!==void 0)throw new Error("FadeInStateAnimation: Unexpected state, disappearing should not have a queued value");this.ƀj.value===0&&(this.ƀn=x.Hidden,this.ƀjo=void 0,this.ƀgy.trigger(this.ƀjo),this.ƀha.trigger(this.ƀj.value));break;case x.DisappearToChange:if(this.ƀia===void 0)throw new Error("FadeInStateAnimation: Unexpected state, disappearToChange should always have a queued value");this.ƀj.value===0&&(this.ƀn=x.Appearing,this.ƀjo=this.ƀia,this.ƀia=void 0,this.ƀgy.trigger(this.ƀjo),this.ƀha.trigger(this.ƀj.value),this.ƀo.animate({value:1}).tap(()=>this.ƀgu()).attach(this));break;case x.Hidden:case x.Visible:return;default:{this.ƀn;throw new Error(`Unexpected case! "${this.ƀn}"`)}}}onStateChange(t){return this.ƀgy.subscribe(e=>t(e)).attach(this),this}onValueChange(t){return this.ƀha.subscribe(e=>t(e)).attach(this),this}};var Gi=class extends u{static{h(this,"FadeInContent");}constructor(t,e){super(),this.ƀbu=t;let i={duration:200,animation:S.easeInOut,...e};this.alpha=0,this.ƀjp=new ve(i).onStateChange(r=>{this.ƀbh?.destroy(),this.ƀbh=void 0,r!==void 0&&(this.ƀbh=new u().displayParent(this).attach(this),this.ƀbu({state:r,container:this.ƀbh}));}).onValueChange(r=>{this.alpha=r;}).attach(this);}setState(t,e){return this.ƀjp.setState(t,e),this}};var Se=class o extends L.Filter{static{h(this,"ExpandWithColorFilter");}static ƀek(){return `
33
33
  attribute vec2 aVertexPosition;
34
34
  attribute vec2 aTextureCoord;
35
35
 
@@ -41,7 +41,7 @@ import {Action,ActionLib,SingleEvent,IDAttachable,SingleAction,Sequence,Variable
41
41
  gl_Position = vec4((projectionMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);
42
42
  vTextureCoord = aTextureCoord;
43
43
  }
44
- `}static ƀdr(t){let e=`
44
+ `}static ƀds(t){let e=`
45
45
  uniform sampler2D uSampler;
46
46
  uniform vec2 pixelSize;
47
47
  uniform float expandSquared;
@@ -64,4 +64,4 @@ import {Action,ActionLib,SingleEvent,IDAttachable,SingleAction,Sequence,Variable
64
64
  highestAlpha = centerColor.a;`,e+=`
65
65
 
66
66
  gl_FragColor = vec4(color, 1.0) * highestAlpha;
67
- }`,e}constructor(t,e){if(super(o.ƀei(),o.ƀdr(t*O)),this.ƀcy=t,this.resolution=O,this.ƀcy=t*O,this.ƀcy<0)throw new Error("ExpandWithColorFilter: Expand * resolution cannot be smaller than 0");if(this.ƀcy>10)throw new Error("ExpandWithColorFilter: Expand * resolution cannot be higher than 10");Comparator.isInteger(this.ƀcy)||(this.ƀcy=Math.floor(this.ƀcy));let i=ColorHelper.normalize(e);this.uniforms.color=new Float32Array([i.red,i.green,i.blue]),this.uniforms.expandSquared=this.ƀcy*this.ƀcy,this.padding=this.ƀcy;}apply(t,e,i,r){this.uniforms.pixelSize=new Float32Array([1/(e.width*O),1/(e.height*O)]),t.applyFilter(this,e,i,r);}};var Pe=class extends L.Filter{static{h(this,"GlowFilter");}constructor(t){super(),this.resolution=O;let e={blurRadius:1,expand:0,color:ColorHelper.white,blendMode:St.Screen,...t};this.ƀcz=new be(e.expand,e.color);let i=Comparator.isNumber(e.blurRadius)?new Vector(e.blurRadius,e.blurRadius):e.blurRadius;this.ƀag=new Tt(i),this.padding=Math.max(i.x,i.y)+e.expand,this.ƀag.blendMode=L.BLEND_MODES.SCREEN;}apply(t,e,i,r){let s=t.getFilterTexture();this.ƀcz.apply(t,e,s,L.CLEAR_MODES.CLEAR),this.ƀag.apply(t,s,i,r),t.returnFilterTexture(s);}};var kt=class o{static{h(this,"GlowSpriteGenerator");}static{this.ƀel=new Map;}static createGlowSpriteFromSprite(t,e,i){let r=this.ƀbc(e),s=Comparator.isNumber(r.blurRadius)?new Vector(r.blurRadius,r.blurRadius):r.blurRadius,n=this.ƀdt(t.texture,s,r.expand,r.color,i),a=new L.Sprite(n);return this.ƀiy(a,Vector.fromVec2(t.anchor),Math.max(s.x,s.y)+r.expand),a.alpha=r.glowAlpha,a.blendMode=r.blendMode,a}static ƀdt(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.ƀel.has(n))return o.ƀel.get(n);{let a=this.ƀdu(t,e,i,r);return o.ƀel.set(n,a),a}}else return this.ƀdu(t,e,i,r)}static ƀdu(t,e,i,r){let s=new L.Sprite(t);this.ƀdb(s,Math.max(e.x,e.y)+i),s.filters=[new Pe({blurRadius:e,expand:i,color:r})];let n=x.instance.renderer.generateTexture(s);return n.id=M.insertAsset(n),s.destroy(),n}static ƀiy(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 ƀdb(t,e){if(t.isSprite){let s=new L.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 ƀbc(t){let e={glowAlpha:1,blurRadius:5,expand:0,color:ColorHelper.white,blendMode:St.Add};return t&&(e={...e,...t}),e}};F.onHardReset.subscribe(()=>{kt.ƀel.clear();}).attachToRoot();var Y=class o extends u{static{h(this,"Sprite");}static createByName(t){let e=x.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.ƀhs,i=e.parent;i&&i.removeChild(e);let r=x.instance.renderer.generateTexture(e,{resolution:2,scaleMode:L.SCALE_MODES.LINEAR,multisample:L.MSAA_QUALITY.HIGH});i&&i.addChild(e);let n={id:M.insertAsset(r),scale:t.scale,size:t.size,anchor:Vector.zero,destroyAssetOnDestroy:true};return new o(n,{ignoreAnchor:true})}constructor(t,e={}){if(super(),this.ƀjy=1,!t)throw new Error("Sprite: spriteDefinition cannot be nullish!");this.ƀjh=t,this.pixiSprite=new L.Sprite(M.getAsset(t.id)),this.ƀhs.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.ƀge?.destroy(),this.ƀai?.destroy(),this.ƀjh.destroyAssetOnDestroy&&(M.destroyAsset(this.ƀjh.id),this.ƀht&&M.destroyAsset(this.ƀht.texture.id)),this.ƀht&&!this.ƀht.destroyed&&this.ƀht.destroy());}setTextureScale(t){return this.textureScale=t,this}get textureScale(){return this.ƀjy}set textureScale(t){this.ƀjy=t,this.pixiSprite.scale.set(t);}get size(){return new Vector(this.pixiSprite.width,this.pixiSprite.height)}getMask(){return this.pixiSprite}set interactive(t){super.interactive=t,t&&this.ƀjh.boundingShapes&&!this.ƀhs.hitArea&&(this.ƀhs.hitArea=new me(this.ƀjh.boundingShapes,this.size,Vector.fromVec2(this.ƀjh.anchor)));}setMipmap(t){return this.mipmap=t,this}get mipmap(){return this.pixiSprite.texture.baseTexture.mipmap===L.MIPMAP_MODES.ON}set mipmap(t){t?this.pixiSprite.texture.baseTexture.mipmap=L.MIPMAP_MODES.ON:this.pixiSprite.texture.baseTexture.mipmap=L.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 L.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.ƀht)return this.ƀht.alpha;throw new Error("Sprite: getGlowFilterAlpha cannot be called before glow filter is added.")}set glowAlpha(t){if(this.ƀht)this.ƀht.alpha=t;else throw new Error("Sprite: setGlowFilterAlpha cannot be called before glow filter is added.")}getAlignmentVector(t){let e=Vector.fromVec2(this.ƀjh.anchor).to(t);return new Vector(this.size.x*e.x,this.size.y*e.y)}setGlowEffect(t){return this.ƀht&&(this.ƀht.destroy(),this.ƀht=void 0),t&&(this.ƀht=kt.createGlowSpriteFromSprite(this.pixiSprite,t,!this.ƀjh.destroyAssetOnDestroy),this.ƀht.position.set(this.pixiSprite.x,this.pixiSprite.y),this.ƀht.scale.set(this.pixiSprite.scale.x,this.pixiSprite.scale.y),this.ƀhs.addChild(this.ƀht)),this}showBoundingShape(t){return t?this.ƀai||(this.ƀai=this.ƀbs().setAlpha(.3).setTint({r:0,g:0,b:200}).displayParent(this)):this.ƀai&&(this.ƀai.destroy(),this.ƀai=void 0),this}getBoundingMask(){if(!this.ƀge){if(!this.ƀjh.boundingShapes)throw new Error("Sprite: cropOverflowingParts cannot be used without polygonDefinition!");this.ƀge=this.ƀbs(),this.ƀge.pixiSprite._maskRefCount=Number.POSITIVE_INFINITY,this.ƀge.pixiSprite.renderable=false,this.ƀge.displayParent(this);}return this.ƀge}ƀbs(){if(!this.ƀjh.boundingShapes)throw new Error("Sprite: bounding shape cannot be created without polygonDefinition!");return E.createPolygon(this.ƀjh.boundingShapes,ColorHelper.white).toSprite().attach(this)}download(){let t=x.instance.renderer.extract.canvas(this.ƀhs);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}};var Qe=class{static{h(this,"AnimationEaseInOutFlatter");}start(){}multiplierFunction(t){return 3*(1-t)*Math.pow(t,2)+Math.pow(t,3)}},yt=class o extends u{static{h(this,"ScrollMaskUI");}static{this.ƀcr=new Map;}constructor(t,e,i,r=tt.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 u;r===tt.Horizontal?this.ƀby(e,i,s):this.ƀcf(e,i,s),this.ƀge=Y.createSnapshotSprite(s).attach(this),s.destroy(),t.setMask(this.ƀge);}ƀcf(t,e,i){e>0&&this.ƀbv(new Vector(t.x,e)).displayParent(i).attach(i),E.createRectangle(new Vector(t.x,t.y-e*2),ColorHelper.white).toSprite().setPosition(new Vector(0,e),{round:false}).displayParent(i).attach(i),e>0&&this.ƀbv(new Vector(t.x,e)).setPosition(new Vector(t.x,t.y),{round:false}).setRotation(Radian.get180).displayParent(i).attach(i);}ƀby(t,e,i){e>0&&this.ƀbv(new Vector(t.y,e)).setPosition(new Vector(0,t.y),{round:false}).setRotation(Radian.get270).displayParent(i).attach(i),E.createRectangle(new Vector(t.x-e*2,t.y),ColorHelper.white).toSprite().setPosition(new Vector(e,0),{round:false}).displayParent(i).attach(i),e>0&&this.ƀbv(new Vector(t.y,e)).setPosition(new Vector(t.x,0),{round:false}).setRotation(Radian.get90).displayParent(i).attach(i);}ƀbv(t){let i={id:this.ƀbw(t.y),scale:1,size:t,anchor:{x:0,y:0}};return new Y(i,{textureSize:t,ignoreAnchor:true})}ƀbw(t){let e=JSON.stringify({type:"gradient",length:t}),i=o.ƀcr.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 Qe;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=L.Texture.from(r);i=M.insertAsset(a),o.ƀcr.set(e,i);}else throw new Error("Canvas context is null")}return i}};var et;(function(o){o[o.Appear=1]="Appear",o[o.Disappear=2]="Disappear";})(et||(et={}));var S;(function(o){o[o.Idle=1]="Idle",o[o.TransitionForward=2]="TransitionForward",o[o.TransitionBackward=3]="TransitionBackward",o[o.Reverting=4]="Reverting";})(S||(S={}));var Se=class extends Attachable{static{h(this,"SlideStateAnimation");}constructor(t){super(),this.ƀn=S.Idle,this.ƀgw=new Action,this.ƀgy=new Action,this.ƀhb={duration:500,animation:P.easeInOutCubic,...t},this.ƀjn=new we({duration:this.ƀhb.duration,animation:this.ƀhb.animation}).onStateChange((e,i)=>this.ƀeq(e,i)).onValueChange(e=>this.ƀer(e)).attach(this);}setIndex(t,e){if(!Comparator.isInteger(t))throw new Error("SlideStateAnimation: index must be an integer!");this.ƀff===void 0?(this.ƀff=t,this.ƀgw.trigger({state:et.Appear,index:t}),this.ƀjn.setState(t,e)):this.ƀff!==t?this.ƀgn!==t?this.ƀn===S.Idle?(this.ƀn=t>this.ƀff?S.TransitionForward:S.TransitionBackward,this.ƀgn=t,this.ƀgw.trigger({state:et.Appear,index:this.ƀgn}),this.ƀjn.setState(t,e)):this.ƀjn.setState(t,e):this.ƀn===S.Reverting&&this.ƀgn===t&&(this.ƀn=t>this.ƀff?S.TransitionForward:S.TransitionBackward,this.ƀjn.setState(t,e)):(this.ƀn===S.TransitionForward||this.ƀn===S.TransitionBackward)&&(this.ƀn=S.Reverting,this.ƀjn.setState(t,e));}ƀeq(t,e){switch(this.ƀff!==void 0&&this.ƀff!==t&&this.ƀff!==e&&this.ƀgw.trigger({state:et.Disappear,index:this.ƀff}),this.ƀgn!==void 0&&this.ƀgn!==t&&this.ƀgn!==e&&this.ƀgw.trigger({state:et.Disappear,index:this.ƀgn}),e!==void 0&&e!==this.ƀff&&e!==this.ƀgn&&this.ƀgw.trigger({state:et.Appear,index:e}),this.ƀn){case S.Idle:break;case S.TransitionForward:case S.TransitionBackward:e===void 0?(this.ƀn=S.Idle,this.ƀff=this.ƀgn,this.ƀgn=void 0):this.ƀff!==t&&this.ƀeo(t,e);break;case S.Reverting:e===void 0?(this.ƀn=S.Idle,this.ƀgn=void 0):this.ƀff!==e&&this.ƀeo(t,e);break;default:{this.ƀn;throw new Error(`Unexpected case! "${this.ƀn}"`)}}}ƀer(t){let e=1;(this.ƀn===S.TransitionBackward||this.ƀn===S.Reverting&&this.ƀff!==void 0&&this.ƀgn!==void 0&&this.ƀff>this.ƀgn)&&(e=-1),(this.ƀn===S.Idle||t!==0)&&this.ƀgy.trigger({value:NumberHelper.ensurePositiveZero(-e*t),index:this.ƀff}),this.ƀgn!==void 0&&this.ƀgy.trigger({value:NumberHelper.ensurePositiveZero(e*(1-t)),index:this.ƀgn});}ƀeo(t,e){this.ƀff=t,this.ƀgn=e,this.ƀgy.trigger({value:0,index:this.ƀff}),this.ƀn=this.ƀff<this.ƀgn?S.TransitionForward:S.TransitionBackward;}onStateChange(t){return this.ƀgw.subscribe(e=>t(e.state,e.index)).attach(this),this}onValueChange(t){return this.ƀgy.subscribe(e=>t(e.value,e.index)).attach(this),this}};var tt;(function(o){o[o.Horizontal=1]="Horizontal",o[o.Vertical=2]="Vertical";})(tt||(tt={}));var qe=class extends u{static{h(this,"SlideInContentByIndex");}constructor(t,e){super(),this.ƀbu=t,this.ƀcm="x",this.ƀbj=new Map,this.ƀhb={duration:300,animation:P.easeInOutCubic,size:new Vector(500,500),margin:20,direction:tt.Horizontal,...e};let i=this.ƀhb.direction===tt.Horizontal?new Vector(this.ƀhb.size.x+this.ƀhb.margin*2,this.ƀhb.size.y):new Vector(this.ƀhb.size.x,this.ƀhb.size.y+this.ƀhb.margin*2),r=new u().setPosition(this.ƀhb.direction===tt.Horizontal?new Vector(-this.ƀhb.margin,0):new Vector(0,-this.ƀhb.margin),{round:false}).displayParent(this).attach(this);this.ƀbz(i,this.ƀhb.margin,this.ƀhb.direction,r),this.ƀcm=this.ƀhb.direction===tt.Horizontal?"x":"y",this.ƀjn=new Se({duration:this.ƀhb.duration,animation:this.ƀhb.animation}).onStateChange((s,n)=>{if(s===et.Appear){let a=new u().displayParent(this).attach(this);this.ƀbj.set(n,a),this.ƀbu({index:n,container:a});}else {let a=this.ƀbj.get(n);a&&(a.destroy(),this.ƀbj.delete(n));}}).onValueChange((s,n)=>{let a=this.ƀbj.get(n);if(a){let l={x:0,y:0};l[this.ƀcm]=i[this.ƀcm]*s+this.ƀhb.margin,a.setPosition(Vector.fromVec2(l),{round:false});}}).attach(this),this.addChildTo=r;}setIndex(t,e){return this.ƀjn.setIndex(t,e),this}ƀbz(t,e,i,r){new yt(r,new Vector(t.x,t.y),e,i).attach(this);}},Hi=class extends qe{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 xt=class{static{h(this,"VectorSet");}constructor(){this.ƀkk=new Map;}add(t){let e=this.ƀkk.get(t.x);e||(e=new Set,this.ƀkk.set(t.x,e)),e.add(t.y);}has(t){let e=this.ƀkk.get(t.x);return e?e.has(t.y):false}delete(t){let e=this.ƀkk.get(t.x);return e?e.delete(t.y):false}};var ti=class{static{h(this,"DeltaTime");}static adjustMultiplier(t,e){return Math.pow(t,e)}};var B=class{static{h(this,"PositionToGridPositionConverter");}static areaToGridArea(t,e){return new 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 Vector(.5,.5)).multiplyNumber(e)}};var Jt=class{static{h(this,"ClosestAvailableSpaceHelper");}static findByConvertingGridSpace(t,e,i){let r=new Vector(Math.ceil(e.size.x/i)-1,Math.ceil(e.size.y/i)-1),s=B.areaToGridArea(e,i);if(this.ƀar(t,s))return Vector.zero;let n=t.movePositionInsideGrid(s.topLeft),a=Vector.fromTo(s.topLeft,n),l=this.find(t,n,r);if(l){let c=l.add(a),p=Vector.fromTo(s.topLeft.multiplyNumber(i),e.topLeft);return new 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 xt,s=new Queue(e);for(;s.notEmpty;){let n=s.pop();r.add(n);let a=new Rectangle(n,n.add(i));if(this.ƀar(t,a))return Vector.fromTo(e,n);t.getNeighborPositions(n,GridNeighborType.Ortogonal).forEach(l=>{r.has(l)||s.add(l);});}}static ƀar(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 Vector(r,i)))return false;return true}};var Wi=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 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)}},cs=class{static{h(this,"PathfinderGrid");}constructor(t,e){this.ƀen=t,this.ƀjk=e,this.ƀha=new BinaryHeap("min"),this.ƀav=[],this.ƀgp=new Grid({size:t.size,defaultValue:void 0});let i=new Wi(this.ƀjk,0,Number.MAX_SAFE_INTEGER);this.ƀha.add(i.pathLength,i);}get hasOpenNodes(){return this.ƀha.size>0}getNeighbors(t,e){return this.ƀen.getNeighborPositions(t.position,e).filter(i=>this.ƀen.get(i)).map(i=>this.ƀgp.get(i)||this.ƀca(i))}popLowestPathCostNode(){let t=this.ƀha.pop();return this.ƀha.delete(t),t.closed=true,this.ƀav.push(t),t}changeNodeCost(t,e,i,r){this.ƀha.delete(t),t.distanceFromStart=e,t.distanceToEnd=t.getDistance(i),t.parent=r,this.ƀha.add(t.pathLength,t);}getBestClosedNode(){return this.ƀav.reduce((t,e)=>t.distanceToEnd<e.distanceToEnd?t:e)}ƀca(t){let e=new Wi(t,Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER);return this.ƀgp.set(t,e),this.ƀha.add(e.pathLength,e),e}},Yt=class{static{h(this,"PathFinder");}static findPath(t,e,i,r){let s=new cs(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 Xt=class{static{h(this,"VectorFieldPathFinder");}constructor(t,e){this.ƀjs=t,this.ƀw=e,this.ƀet=this.ƀdw(this.ƀw.size),this.ƀks=new Grid({size:this.ƀw.size,defaultValue:this.ƀet}),this.ƀcn=new Grid({size:this.ƀw.size,defaultValue:void 0});let i=new xt,r=new Queue;for(this.ƀdk(this.ƀw.cropAreaOutsideOfTheGrid(t)).forEach(n=>{this.ƀks.set(n,0),r.add(n);});r.notEmpty;){let n=r.pop();if(!i.has(n)){i.add(n);let a=this.ƀks.getOrFail(n);this.ƀeb(n,this.ƀw).forEach(l=>{if(!i.has(l.position)){let c=this.ƀks.getOrFail(l.position),p=a+l.distance;this.ƀw.getOrFail(l.position)&&p<c&&(this.ƀks.set(l.position,p),r.add(l.position));}});}}}getDirectionToTarget(t){if(!t.isInsideRectangle(this.ƀjs)){if(t=this.ƀks.movePositionInsideGrid(t),this.ƀcn.has(t))return this.ƀcn.get(t);{let e=this.ƀeb(t,this.ƀw),i;return this.ƀks.getOrFail(t)>=this.ƀet?e.some(s=>this.ƀw.get(s.position))&&(e.some(n=>!this.ƀw.get(n.position))?i=this.ƀdq(e):i=this.ƀdl(t,e)):i=this.ƀdl(t,e),this.ƀcn.set(t,i),i}}}ƀdq(t){let e=t.filter(i=>this.ƀw.get(i.position)).map(i=>i.direction.radian);return Radian.getAverage(...e)}ƀdl(t,e){let i=e.filter(r=>this.ƀks.getOrFail(r.position)<this.ƀet).reduce((r,s)=>{let n=this.ƀks.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.ƀet}).bestDirections;return this.ƀeg(i,t)}ƀeg(t,e){if(t.length>0){let i=t.reduce((r,s)=>r.add(s),Vector.zero);if(i.isZero()||!this.ƀfl(e,i))return Random.pickRandomElement(t).radian;if(t.length>=1)return i.radian}}ƀfl(t,e){let i=t.add(this.ƀkl(e));return this.ƀw.isPointWithinBounds(i)&&this.ƀw.getOrFail(i)}ƀeb(t,e){return this.ƀks.getNeighborDirections(t,GridNeighborType.All).map(i=>({position:t.add(i),direction:i,distance:i.x!==0&&i.y!==0?14:10}))}ƀdk(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 Vector(r,i));return e}ƀkl(t){let e=t.normalize().round();return new Vector(e.x,e.y)}ƀdw(t){return (t.x+t.y)*20}};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},V=class extends ft{static{h(this,"CameraEntity");}constructor(){super(...arguments),this.position=new Variable(Vector.zero),this.offset=new Variable(Vector.zero),this.targetPosition=new Variable(void 0),this.focusingNewTargetInfo=new Variable(void 0);}};V=ms([ut()],V);var gs=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},ys=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},It=class extends dt{static{h(this,"CameraView");}constructor(t){super(),this.ƀcw=t,this.ƀim=new u().setAlpha(0).displayParent(x.instance.stage).attach(this),this.ƀac=E.createRectangle(new Vector(1,1),ColorHelper.black).toSprite({cache:true}).setAlpha(0).displayParent(x.instance.stage).attach(this),this.ƀaa=new u().displayParent(this.ƀim).attach(this),this.ƀao=new u().displayParent(this.ƀim).attach(this),this.ƀdg=new u().setSortableChildren(true).displayParent(this.ƀim).attach(this),this.ƀan=new u().setSortableChildren(true).displayParent(this.ƀao).attach(this),this.ƀdf=new u().setSortableChildren(true).setZIndex(20).displayParent(this.ƀan).attach(this),this.ƀgc=new u().setSortableChildren(true).setZIndex(10).displayParent(this.ƀan).attach(this),this.ƀz=new u().setZIndex(0).displayParent(this.ƀan).attach(this),this.ƀh=new D(this.ƀim,"alpha",{duration:500,animation:P.easeInOutCubic,reAnimateHandling:_.CompletePrevious,completionHandling:R.StayInCurrentState}),this.ƀad=new D(this.ƀac,"alpha",{duration:500,animation:P.easeInOutCubic,reAnimateHandling:_.CompletePrevious,completionHandling:R.StayInCurrentState}),x.instance.screenSize.subscribe(e=>{this.ƀac.aspectRatio=e.x/e.y,this.ƀac.scale=Math.max(e.x,e.y),this.ƀac.setPosition(Vector.zero,{holdFrom:Vector.zero});}).attach(this),x.instance.setScreenPositionToStagePositionFunction(e=>new Vector(e.x-this.ƀan.position.x-this.ƀao.position.x,e.y-this.ƀan.position.y-this.ƀao.position.y)),this.ƀcw.position.subscribe(e=>{this.ƀan.position=this.ƀbp(e);}).attach(this),this.ƀcw.offset.subscribe(e=>{this.ƀao.position=e;}).attach(this),this.appear(true,"alpha");}destroy(){this.destroyed||(super.destroy(),x.instance.resetScreenPositionToStagePositionFunction());}getLayers(){return {backgroundScreen:this.ƀaa.id,background:this.ƀz.id,main:this.ƀgc.id,foreground:this.ƀdf.id,foregroundScreen:this.ƀdg.id}}appear(t,e){switch(e){case "alpha":return this.ƀad.set({alpha:0}),this.ƀh.set({alpha:t?0:1}),this.ƀh.animate({alpha:t?1:0}).chain(this);case "pureBlack":return this.ƀh.set({alpha:1}),this.ƀad.set({alpha:t?1:0}),this.ƀad.animate({alpha:t?0:1}).chain(this);case "instant":return this.ƀh.set({alpha:t?1:0}),this.ƀad.set({alpha:t?0:1}),SingleEvent.instant();default:{throw new Error('Switch ended with value "never".')}}}ƀbp(t){return Vector.fromTo(t,x.instance.getScreenSizeCenter())}};It=gs([Je({entity:V}),ys("design:paramtypes",[V])],It);var vs=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},bs=1500,Ee=class{static{h(this,"CameraService");}createCamera(){return new V().attachToRoot()}getCameraPosition(){let t=V.getInstanceOrFail();return Vector.fromTo(t.offset.value,t.position.value)}setPosition(t){let e=V.getInstanceOrFail();e.targetPosition.value=t;}setTransition(t){let e=V.getInstanceOrFail();e.focusingNewTargetInfo.value={time:x.time,duration:t?.duration??bs,position:e.position.value,roundPosition:t?.roundPosition??false,roundPositionThreshold:t?.roundPositionThreshold??0,focusingAnimation:t?.animation??st.Instant};}update(t,e){let i=V.getInstanceOrFail(),r=i.targetPosition.value;r&&(i.focusingNewTargetInfo.value?this.ƀfo(i,r,t):i.position.value=r);}ƀfo(t,e,i){let r=t.focusingNewTargetInfo.value;if(r.focusingAnimation===st.Instant)this.ƀbb(t,e);else {let s=(i-r.time)/r.duration;if(s>=1)this.ƀbb(t,e);else {let n;r.focusingAnimation===st.EaseInOut?n=J.easeInOut(s):r.focusingAnimation===st.EaseOut?n=J.easeOut(s):n=1;let a=r.position.lerp(e,n);r.roundPosition&&(Math.abs(a.x-r.position.x)>=r.roundPositionThreshold&&(a=new Vector(Math.round(a.x),a.y)),Math.abs(a.y-r.position.y)>=r.roundPositionThreshold&&(a=new Vector(a.x,Math.round(a.y)))),t.position.value=a;}}}ƀbb(t,e){t.position.value=e,t.focusingNewTargetInfo.value=void 0;}};Ee=vs([d()],Ee);var Ps=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},Ss=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},ri=class{static{h(this,"CameraController");}constructor(t){this.ƀap=t;}createCamera(){return this.ƀap.createCamera().id}update(t,e){this.ƀap.update(t,e);}setPosition(t){this.ƀap.setPosition(t);}setTransition(t){this.ƀap.setTransition(t);}getCameraPosition(){return this.ƀap.getCameraPosition()}};ri=Ps([q({controllerLink:gt}),Ss("design:paramtypes",[Ee])],ri);var Ts=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},si=class{static{h(this,"CameraViewController");}getLayers(){let t=V.getInstanceOrFail().id;return It.getInstanceOrFail(t).getLayers()}appear(t,e){let i=V.getInstanceOrFail().id;return It.getInstanceOrFail(i).appear(t,e)}};si=Ts([q({controllerLink:ye})],si);var Zt=class{static{h(this,"Camera");}get position(){return this.ƀam.getCameraPosition()}constructor(){this.ƀam=T.get(Et),this.ƀaq=T.get(Ut),this.ƀam.createCamera(),this.layers=this.ƀaq.getLayers();}setPosition(t){this.ƀam.setPosition(t);}setTransition(t){this.ƀam.setTransition(t);}appear(t,e="alpha"){return this.ƀaq.appear(t,e)}};var x=class o{static{h(this,"Game");}static get instance(){return this.ƀfi}static{this.pause=Reducer.createOr();}static get camera(){return this.ƀal}static get time(){return y.ƀjz}static get setupOptions(){return this.ƀja}getScreenSize(){return this.ƀiq.value}getScreenSizeCenter(){return this.ƀir.value}constructor(t){if(this.ƀiq=new Variable(Vector.zero),this.screenSize=this.ƀiq.notifier,this.ƀir=new Variable(Vector.zero),this.screenSizeCenter=this.ƀir.notifier,this.devMode=false,this.resetScreenPositionToStagePositionFunction(),o.ƀfi)throw new Error("There can be only one Game instance!");{this.ƀbf={screenResolution:void 0,devMode:false,backgroundColor:ColorHelper.black,antialias:false,resolution:1,...t},this.devMode=this.ƀbf.devMode||false;let e=JsonHelper.removeUndefinedProperties({backgroundColor:this.ƀbf.backgroundColor,autoStart:false,antialias:this.ƀbf.antialias,resolution:this.ƀbf.resolution,width:this.ƀbf.screenResolution?.width,height:this.ƀbf.screenResolution?.height,resizeTo:this.ƀbf.screenResolution===void 0?window:void 0});this.ƀhr=new L.Application(e);}}async setup(t){o.ƀja=t,document.body.appendChild(this.ƀhr.view),await Promise.all([M.loadGameAssets(t.assetDefinitions)]),o.ƀfi=this,this.stage=new u().attachToRoot(),this.stage.ƀhs=this.ƀhr.stage,this.renderer=this.ƀhr.renderer,this.ƀiz(),this.stage.sortableChildren=true,globalThis.ƀa=this.ƀhr,window.addEventListener("resize",e=>{setTimeout(()=>this.ƀiz());}),o.ƀal=new Zt,this.ƀhr.start(),this.ƀhr.ticker.add(()=>{y.triggerUpdateTick(this.ƀhr.ticker.deltaMS);});}setResolution(t){this.ƀhr.renderer.resolution!==t&&(this.ƀhr.renderer.resolution=t,this.ƀhr.renderer.resize(this.ƀhr.screen.width,this.ƀhr.screen.height));}screenPositonToStagePosition(t){let e=Wt.includeScaleInScreenPosition(t,o.instance.stage.scale,o.instance.getScreenSizeCenter());return this.ƀip(e)}setScreenPositionToStagePositionFunction(t){this.ƀip=t;}resetScreenPositionToStagePositionFunction(){this.ƀip=t=>t;}destroyAsset(t){M.destroyAsset(t);}ƀiz(){let t=new Vector(this.ƀhr.screen.width,this.ƀhr.screen.height);this.ƀiq.value=t,this.ƀir.value=t.multiplyNumber(.5).round();}};var Ce=class{static{h(this,"DashedLineHelper");}static getLines(t,e,i){let r=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,m=Math.floor(c/p),g=c-p*m;m>=1&&g<i.dashLength&&(g+=p,m--);let C=s.normalize(g/2),bt=s.normalize(i.dashGap);if(a.push({from:l,to:l.add(C)}),l=l.add(C),m>0){let se=s.normalize(i.dashLength);ArrayHelper.createEmptyArray(m).forEach(()=>{l=l.add(bt),a.push({from:l,to:l.add(se)}),l=l.add(se);});}return l=l.add(bt),a.push({from:l,to:l.add(C)}),a}};var E=class o extends u{static{h(this,"Graphics");}static{this.ƀcr=new Map;}static createArrow(t,e){let i=new L.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 L.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:ColorHelper.white,...i},s=new L.Graphics;return s.lineStyle(r.width,r.color),Ce.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 L.Graphics;return r.lineStyle(2,i),r.moveTo(t.x,t.y),r.lineTo(e.x,e.y),r.lineStyle(1,i),r.beginFill(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 L.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=ColorHelper.white){let i=new L.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 L.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 L.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 L.Graphics,r=JSON.stringify({type:"polygon",polygon:t,color:e});return i.beginFill(e),t.forEach(s=>{i.drawPolygon(s.map(n=>new L.Point(n.x,n.y)));}),i.endFill(),new o(i,r)}static createRegularPolygon(t,e,i){let r=new L.Graphics,s=new Radian(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.ƀhs.addChild(t),this.pixiGraphics=t,this.ƀak=e;}destroy(){this.destroyed||(super.destroy(),!this.pixiGraphics.destroyed&&this.pixiGraphics.destroy());}toSprite(t){let e={cacheName:this.ƀak,cache:false,...t},i=this.ƀef(e.cacheName,e.cache),r={id:i.assetID,scale:1,size:i.bounds,anchor:{x:0,y:0},destroyAssetOnDestroy:!e.cache},s=new Y(r,{texturePosition:i.bounds,ignoreAnchor:true});return this.attachToRoot(),this.destroy(),s}ƀef(t,e){if(e){let i=o.ƀcr.get(t);return i||(i=this.ƀce(),o.ƀcr.set(t,i)),i}else return this.ƀce()}ƀce(){let t=x.instance.renderer.generateTexture(this.pixiGraphics);t.id=M.insertAsset(t);let e=this.pixiGraphics.getBounds();return {assetID:t.id,bounds:new Vector(e.x,e.y)}}};var ai=class extends u{static{h(this,"Placeholder");}constructor(t){super(),this.ƀhu=new L.Graphics,this.ƀhu.beginFill(0,1e-9),this.ƀhu.drawRect(0,0,t.x,t.y),this.ƀhu.endFill(),this.ƀhs.addChild(this.ƀhu);}destroy(){this.destroyed||(super.destroy(),this.ƀhu.destroy());}};var At=class{static{h(this,"TextStyleConverter");}static getPixiTextStyle(t){let e={color: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:Radian.get60,distance:10,color:ColorHelper.black,alpha:.5,...i};r={dropShadow:true,dropShadowBlur:s.blur,dropShadowAngle:s.angle.value,dropShadowDistance:s.distance,dropShadowColor:ColorHelper.rgbToHex(s.color),dropShadowAlpha:s.alpha};}return JsonHelper.removeUndefinedProperties({fontFamily:e.fontFamily,fill: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 Ie=class{static{h(this,"RichTextDataInConverter");}static process(t,e){let i=new Set(e.styles?Object.keys(e.styles):[]),r=RichTextSeparator.process(t,i),s=this.ƀfe(r,e),n=this.ƀr(s);return this.ƀjf(n)}static ƀfe(t,e){let i=new Map,r=new Map,s=h((a,l)=>{if(r.has(l))return r.get(l);let c=At.getPixiTextStyle(a);return r.set(l,c),c},"GetPixiStyle");return t.map(a=>{let{style:l,cacheKey:c}=this.ƀdo(a.tags,e,i),p=s(l,c),m=L.TextMetrics.measureText(" ",new L.TextStyle(p),false);return {text:a.text,cacheKey:c,style:l,pixiStyle:p,spaceWidth:m.width}})}static ƀdo(t,e,i){let r=t.join("+");if(i.has(r))return {style:i.get(r),cacheKey:r};let s=this.ƀba(t,e);return i.set(r,s),{style:s,cacheKey:r}}static ƀba(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 ƀr(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 ƀjf(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.ƀjg(s.text).map(a=>{let l=new L.TextStyle(s.pixiStyle),c=L.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 ƀjg(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 Ae=class{static{h(this,"RichTextTypewriter");}get lineIsEmpty(){return this.ƀci.length===0}get remainingWidth(){return this.ƀkt-this.ƀck}constructor(t,e){this.ƀkt=t,this.ƀfw=[],this.ƀci=[],this.ƀck=0,this.ƀfv=new Vector(0,0),this.ƀcj=0;let i={rectangleCutOption:void 0,horizontalAlignment:"left",verticalAlignment:"bottom",...e};if(this.ƀew=i.horizontalAlignment,this.ƀkm=i.verticalAlignment,i.rectangleCutOption){if(i.rectangleCutOption.position.x<0||i.rectangleCutOption.position.x>=this.ƀkt||i.rectangleCutOption.position.y<0)throw new Error("Rectangle cut position is out of bounds");this.ƀcl={direction:i.rectangleCutOption.direction,rectangle:this.ƀbo(i.rectangleCutOption)};}}isSpaceAvailable(t){let e=Math.max(this.ƀcj,t.y),i=this.ƀdx(this.ƀfv.y,this.ƀfv.y+e);return this.ƀck+t.x<=i}insertWord(t){let e=Math.max(this.ƀcj,t.style.height);if(this.ƀci.length===0){let i=this.ƀdy(this.ƀfv.y,this.ƀfv.y+e);this.ƀfv=new Vector(i,this.ƀfv.y),this.ƀck=this.ƀfv.x;}this.ƀci.push({chunk:t,position:new Vector(this.ƀck,this.ƀfv.y)}),this.ƀcj=e,this.ƀck+=t.style.width;}newLine(){let t=this.ƀfv.y+this.ƀcj,e=this.ƀdy(t,t);this.ƀdd(),this.ƀfv=new Vector(e,t),this.ƀck=this.ƀfv.x,this.ƀcj=0;}print(){return this.ƀdd(),this.ƀfw}ƀdd(){this.ƀci.length>0&&(this.ƀfw.push(this.ƀg(this.ƀci)),this.ƀci=[]);}ƀg(t){return t=this.ƀko(t),t=this.ƀey(t),t}ƀey(t){if(this.ƀew==="left")return t;let e=this.ƀfv.y+this.ƀcj,i=this.ƀdy(this.ƀfv.y,e),s=this.ƀdx(this.ƀfv.y,e)-i,n=Math.min(s,t.reduce((l,c)=>l+c.chunk.style.width,0)),a;return this.ƀew==="center"?a=(s-n)/2:a=s-n,t.map(l=>(l={chunk:l.chunk,position:new Vector(l.position.x+a,l.position.y)},l))}ƀko(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.ƀkm){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.ƀkm;throw new Error(`Unexpected case! "${this.ƀkm}"`)}}return r={chunk:r.chunk,position:new Vector(r.position.x,r.position.y+s)},r})}ƀdy(t,e){return this.ƀcl&&(this.ƀcl.direction==="topLeft"||this.ƀcl.direction==="bottomLeft")&&(this.ƀcl.rectangle.isPointInside(new Vector(0,t),{includeEdges:false})||this.ƀcl.rectangle.isPointInside(new Vector(0,e),{includeEdges:false}))?this.ƀcl.rectangle.bottomRight.x:0}ƀdx(t,e){return this.ƀcl&&(this.ƀcl.direction==="topRight"||this.ƀcl.direction==="bottomRight")&&(this.ƀcl.rectangle.isPointInside(new Vector(this.ƀkt,t),{includeEdges:false})||this.ƀcl.rectangle.isPointInside(new Vector(this.ƀkt,e),{includeEdges:false}))?this.ƀcl.rectangle.topLeft.x:this.ƀkt}ƀbo(t){let e,i;switch(t.direction){case "topRight":e=new Vector(t.position.x,-1/0),i=new Vector(1/0,t.position.y);break;case "topLeft":e=new Vector(-1/0,-1/0),i=t.position;break;case "bottomRight":e=t.position,i=new Vector(1/0,1/0);break;case "bottomLeft":e=new Vector(-1/0,t.position.y),i=new Vector(t.position.x,1/0);break;default:{t.direction;throw new Error(`Unexpected case! "${t.direction}"`)}}return new Rectangle(e,i)}};var Oe=class{static{h(this,"ConsistentSpaceTextWrapper");}static wrapText(t,e){return t.forEach(i=>{i.forEach((r,s)=>{if(e.isSpaceAvailable(new Vector(r.style.width,r.style.height)))if(r.whitespace&&s===i.length-2){let n=i[i.length-1];e.isSpaceAvailable(new Vector(n.style.width+r.style.width,n.style.height))?e.insertWord(r):this.ƀku(r,e);}else e.insertWord(r);else e.lineIsEmpty?e.insertWord(r):r.whitespace?this.ƀku(r,e):(e.newLine(),e.insertWord(r));}),e.newLine();}),e.print()}static ƀku(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 Me=class{static{h(this,"RichTextDataOutConverter");}static process(t){return t=this.ƀgj(t),t=this.ƀkd(t),this.ƀat(t)}static ƀgj(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 ƀkd(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 ƀat(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 Qt=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=Ie.process(t,e),r=JsonHelper.removeUndefinedProperties({rectangleCutOption:e.rectangleCut,verticalAlignment:e.verticalAlignment,horizontalAlignment:e.default.align}),s=new Ae(e.default.wordWrapWidth??1/0,r),n=Oe.wrapText(i,s);return Me.process(n)}};var js=1,Xi=1/js,qt=class extends u{static{h(this,"Text");}get ƀjw(){if(!this.ƀjx){let t=new L.TextStyle(this.ƀhw);this.ƀjx=L.TextMetrics.measureText(this.ƀjv,t);}return this.ƀjx}get ascent(){return this.ƀjw.fontProperties.ascent}constructor(t,e){super(),this.ƀhw=At.getPixiTextStyle(e),this.setText(t);}destroy(){this.destroyed||(super.destroy(),!this.ƀhv.destroyed&&this.ƀhv.destroy());}setAnchor(t){return this.anchor=t,this}get anchor(){return new Vector(this.ƀhv.anchor.x,this.ƀhv.anchor.y)}set anchor(t){this.ƀi=t,this.ƀhv.anchor.set(t.x,t.y);}setText(t){return this.ƀjv!==t&&(this.ƀjv=t,this.ƀid()),this}setColor(t){let e=ColorHelper.rgbToHex(t);return this.ƀhw.fill!==e&&(this.ƀhw.fill=e,this.ƀid()),this}ƀid(){this.ƀhv?.destroy(),this.ƀjq?.destroy(),this.ƀjq=void 0,this.ƀjx=void 0;let t=new L.TextStyle(this.ƀhw);this.ƀhv=new L.Text(this.ƀjv,t),this.ƀih(),this.ƀi&&this.ƀhv.anchor.set(this.ƀi.x,this.ƀi.y),this.ƀhv.scale.set(Xi,Xi),this.ƀhs.addChild(this.ƀhv),this.ƀhw.lineThrough&&(this.ƀjq=this.ƀe(this.ƀhv,this.ƀhw.fill),this.ƀhs.addChild(this.ƀjq));}ƀih(){let t=L.TextMetrics.measureText(this.ƀjv,new L.TextStyle({...this.ƀhw,dropShadow:false,dropShadowAlpha:0,dropShadowBlur:0,dropShadowDistance:0}));this.ƀhv.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=L.TextMetrics.measureText(t.text,t.style),r=Math.max(1,Math.round(i.lineHeight*.07)),s=r%2*.5,n=new L.Graphics;n.lineStyle(r,e);let a=0;return i.lines.forEach((l,c)=>{let p=L.TextMetrics.measureText(l,t.style),m=Math.round(a+(p.fontProperties.ascent-p.fontProperties.descent)*.6+p.fontProperties.descent)+s,g=0;t.style.align==="center"?g=0+(t.width-p.width)*.5:t.style.align==="right"&&(g=0+t.width-p.width),g=Math.floor(g),n.moveTo(Math.floor(g),m),n.lineTo(Math.floor(g+p.width),m),a+=p.lineHeight;}),n.endFill(),n}};var hi=class extends u{static{h(this,"RichText");}constructor(t,e){super(),Qt.process(t,e).forEach(r=>new qt(r.text,r.style).setPosition(r.position).displayParent(this).attach(this));}};var li=class extends u{static{h(this,"UpdatableContainer");}},ci=class extends u{static{h(this,"DisplayObjectArray");}constructor(t,e){super(),this.ƀbu=t,this.ƀco=new Map,this.ƀhb={trackBy:h((i,r)=>r,"trackBy"),positioning:{direction:"vertical",spacing:0},...e};}set(t){let e=new Set(this.ƀco.keys()),i=0;t.forEach((r,s)=>{let n=this.ƀhb.trackBy(r,s),a;this.ƀco.has(n)?(a=this.ƀco.get(n),e.delete(n),a.update(r)):(a=this.ƀbu(r).displayParent(this).attach(this),this.ƀco.set(n,a)),this.ƀhb.positioning.direction==="horizontal"?(a.x=i,i+=a.size.x+this.ƀhb.positioning.spacing):(a.y=i,i+=a.size.y+this.ƀhb.positioning.spacing);}),e.forEach(r=>{this.ƀco.get(r).destroy(),this.ƀco.delete(r);});}};var te=class o extends u{static{h(this,"MenuUI");}static{this.ƀfk=Reducer.createExistenceChecker();}static{this.isAnyMenuTransitioning=this.ƀfk.notifier;}static getIsAnyMenuTransitioning(){return o.ƀfk.value}constructor(t,e){super(),this.ƀgt=new SingleAction,this.onCreate=this.ƀgt.notifier,this.ƀgv=new SingleAction,this.onOpen=this.ƀgv.notifier,this.ƀgq=new SingleAction,this.onClose=this.ƀgq.notifier,this.ƀaw=false;let i={closeOnBackgroundClick:true,appearAnimationDuration:150,backgroundDarkeningRatio:.3,...e};this.setAlpha(0),this.ƀo=new D(this,"alpha",{animation:P.easeInOutCubic,duration:i.appearAnimationDuration,reAnimateHandling:_.CompletePrevious,completionHandling:R.StayInCurrentState});let r=E.createRectangle(new Vector(1,1),ColorHelper.black).toSprite({cache:true}).setAlpha(i.backgroundDarkeningRatio).setInteractive(true).displayParent(this).attach(this);this.ƀgh=Y.createByName(t).setPosition(new Vector(0,0)).setInteractive(true).displayParent(this).attach(this),x.instance.screenSize.subscribe(n=>{r.aspectRatio=n.x/n.y,r.scale=Math.max(n.x,n.y),r.setPosition(Vector.zero,{holdFrom:Vector.half}),this.setPosition(n.multiplyNumber(.5));}).attach(this),this.ƀgt.resolve();let s=o.ƀfk.effect().attach(this);this.ƀo.animate({alpha:1}).chain(this).tap(()=>{this.ƀgv.resolve(),s.destroy(),i.closeOnBackgroundClick&&r.on(jt.Click).take(1).tap(()=>this.close()).attach(this);}).attachToRoot();}getBoundingMask(){return this.ƀgh.getBoundingMask()}close(){if(!this.ƀaw){this.ƀaw=true;let t=o.ƀfk.effect().attach(this);this.ƀo.animate({alpha:0}).chain(this).map(()=>{this.ƀgq.resolve(),t.destroy(),this.destroy();}).chainToRoot();}return this.onClose.toSingleEvent().destroyIfNotAttached()}};var di=class extends ft{static{h(this,"MenuEntity");}static subscribeIsOpen(){return ActionLib.merge(this.continuesSubscription().map(t=>t.type==="open"),SingleEvent.instant(this.getInstance()!==void 0))}constructor(t){super(),this.ƀhb=t,queueMicrotask(()=>{if(!this.ƀgi)throw new Error("MenuEntity: MenuEntity has to have a MenuView.")});}ƀif(t){this.ƀgi=t,this.ƀgi.onClose.subscribe(()=>this.destroy()).attach(this);}onCreate(){return this.ƀgi.onCreate.toSingleEvent().destroyIfNotAttached()}onOpen(){return this.ƀgi.onOpen.toSingleEvent().destroyIfNotAttached()}onClose(){return this.ƀgi.onClose.toSingleEvent().destroyIfNotAttached()}close(){return this.ƀgi.close()}};var ui=class extends dt{static{h(this,"MenuView");}constructor(t,e,i){super();let r=JsonHelper.removeUndefinedProperties({appearAnimationDuration:i.appearAnimationDuration,backgroundDarkeningRatio:i.backgroundDarkeningRatio,closeOnBackgroundClick:t.ƀhb.closeOnBackgroundClick}),s=new te(e,r).displayParent(x.camera.layers.foregroundScreen).attach(this);t.ƀif(s);let n=new SingleAction;s.onCreate.subscribe(()=>n.resolve(s)).attach(this),this.onCreate=n.notifier,this.onOpen=s.onOpen.notifier,this.onClose=s.onClose.notifier;}};var Ys=.65,Xs=.01,Be=class{static{h(this,"SmoothScroller");}get scrollHeight(){return this.ƀis}get contentSize(){return this.ƀbh.size.ceil()}constructor(t,e,i,r){this.ƀbh=t,this.ƀu=e,this.ƀhe=i,this.ƀje=r,this.ƀfh=false,this.ƀis=e-i*2,this.ƀbh.y=i,this.ƀjr=i;}onWheel(t){this.setTarget(this.ƀjr-t*Ys);}scrollToTop(){this.setTarget(1/0);}scrollToBottom(){this.setTarget(-1/0);}setTarget(t){this.ƀjr=NumberHelper.clamp(t,this.ƀu-this.ƀhe-this.contentSize.y,this.ƀhe);}jumpToTarget(){this.ƀbh.y=this.ƀjr;}update(t){let e=this.contentSize;if(e.y<=this.ƀis){switch(this.ƀje){case "start":this.ƀjr=this.ƀhe;break;case "center":this.ƀjr=(this.ƀu-e.y)*.5;break;case "end":this.ƀjr=this.ƀu-e.y-this.ƀhe;break;default:{this.ƀje;throw new Error(`Unexpected case! "${this.ƀje}"`)}}this.ƀfh||(this.ƀbh.y=this.ƀjr);}this.ƀfh=true;let i=this.ƀjr-this.ƀbh.y;this.ƀbh.y=this.ƀbh.y+i*Xs*t;}};var Zs=15,fi=class extends u{static{h(this,"ScrollAreaUI");}get contentAreaSize(){return this.ƀbi}get contentSize(){return this.ƀit.contentSize}constructor(t,e={}){super();let i={padding:Zs,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 u().displayParent(this).attach(this);new yt(r,t,i.padding).attach(this);let s=new L.Graphics;s.beginFill(0,1e-9),s.drawRect(0,0,t.x,t.y),s.endFill(),r.ƀhs.addChild(s);let n=new u().displayParent(r).attach(this);this.ƀit=new Be(n,t.y,i.padding,i.smallContentAlign),this.ƀbi=new Vector(t.x,this.ƀit.scrollHeight),s.eventMode="dynamic",s.addEventListener("wheel",a=>{this.ƀit.onWheel(a.deltaY);}),n.setInteractive(true),n.ƀhs.addEventListener("wheel",a=>{this.ƀit.onWheel(a.deltaY);}),y.afterSceneUpdateAction.subscribe(a=>this.ƀit.update(a.delta)).attach(this),this.addChildTo=n;}scrollToTop(t){this.ƀit.scrollToTop(),t?.instant&&this.ƀit.jumpToTarget();}scrollToBottom(t){this.ƀit.scrollToBottom(),t?.instant&&this.ƀit.jumpToTarget();}};var Qs=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},qs=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},mi=class{static{h(this,"KeyboardService");}constructor(){this.ƀfr=new Action,this.keyPressed=this.ƀfr.notifier,this.ƀfs=new Action,this.keyReleased=this.ƀfs.notifier,this.ƀfy=new Set,this.ƀfx=new Set,window.addEventListener("keydown",t=>{this.ƀfy.add(t.key),this.ƀfx.add(t.key),!t.repeat&&this.ƀfr.trigger(t.key);}),window.addEventListener("keyup",t=>{this.ƀfy.delete(t.key),this.ƀfs.trigger(t.key);}),window.addEventListener("blur",()=>{this.ƀfy.clear();}),y.afterSceneUpdateAction.subscribe(()=>{this.ƀfx.clear();}).attachToRoot();}isKeyDown(t){return this.ƀfy.has(t)}isKeyJustPressed(t){return this.ƀfx.has(t)}};mi=Qs([d(),qs("design:paramtypes",[])],mi);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},eo=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},ie=class{static{h(this,"MouseService");}get initialMouseMoveHappened(){return this.ƀfg.value}getStagePosition(){return this.ƀji.value}getScreenPosition(){return this.ƀio.value}getMainButtonState(){return this.ƀgb.value}getSecondaryButtonState(){return this.ƀiu.value}constructor(){this.ƀfg=new Variable(false),this.onInitialMouseMove=this.ƀfg.notifier,this.ƀji=new Variable(Vector.zero,{notifyOnChange:true}),this.stagePosition=this.ƀji.notifier,this.ƀio=new Variable(Vector.zero,{notifyOnChange:true}),this.screenPosition=this.ƀio.notifier,this.ƀgb=new Variable(false),this.mainButtonState=this.ƀgb.notifier,this.ƀiu=new Variable(false),this.secondaryButtonState=this.ƀiu.notifier,this.ƀjj(),window.addEventListener("pointerdown",t=>{t.button===0?this.ƀgb.value=true:t.button===2&&(this.ƀiu.value=true);},{capture:true}),window.addEventListener("pointerup",t=>{t.button===0?this.ƀgb.value=false:t.button===2&&(this.ƀiu.value=false);},{capture:true}),window.addEventListener("blur",()=>{this.ƀgb.value=false,this.ƀiu.value=false;},{capture:true});}ƀjj(){let t=Vector.zero;window.addEventListener("pointermove",e=>{t=new Vector(e.clientX,e.clientY),this.ƀfg.value=true;},{capture:true}),y.beforeSceneUpdateAction.subscribe(()=>{this.ƀio.value=t;}).attachToRoot(),y.afterSceneUpdateAction.subscribe(()=>{let e=x.instance.screenPositonToStagePosition(this.ƀio.value);e.isEqual(this.ƀji.value)?x.instance.renderer.events.onPointerMove(new PointerEvent("pointermove",{clientX:this.ƀio.value.x,clientY:this.ƀio.value.y,pointerType:"mouse"})):this.ƀji.value=e;}).attachToRoot();}};ie=to([d(),eo("design:paramtypes",[])],ie);var io=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)},gi=class{static{h(this,"MouseTargetFocusService");}get focusedInLastFrame(){return this.ƀde}get lastFocusedPosition(){return this.ƀfu}constructor(t){this.ƀgl=t,this.ƀgx=new Action,this.onTargetFocus=this.ƀgx.notifier,this.ƀkb=0,this.ƀkc=false,this.ƀde=false,this.ƀfu=void 0,y.beforeSceneUpdateAction.subscribe(e=>this.ƀkf(e.delta)).attachToRoot();}ƀkf(t){if(this.ƀgm){let e=this.ƀee(this.ƀgl.getStagePosition(),this.ƀgm);this.ƀhg===void 0?this.ƀhg=e:this.ƀas(e,t);}this.ƀgm=this.ƀgl.getStagePosition();}ƀas(t,e){this.ƀhg-t>10?(this.ƀkb=Math.max(250,this.ƀkb),this.ƀkc=true):this.ƀkb>1e3&&(this.ƀkc=true);let i=this.ƀkb>=300&&this.ƀkc;this.ƀfp(i,t,e);}ƀfp(t,e,i){(t||e>this.ƀhg)&&(this.ƀhg=e),t?(this.ƀkc=false,this.ƀkb=0,this.ƀde=true,this.ƀfu=this.ƀgl.getStagePosition(),this.ƀgx.trigger(this.ƀfu)):(this.ƀkb+=i,this.ƀde=false);}ƀee(t,e){let i=Vector.fromTo(t,e);return Math.abs(i.x)+Math.abs(i.y)}};gi=io([d(),ro("design:paramtypes",[ie])],gi);var yi=10.8,wi=10.01,it;(function(o){o[o.Point=1]="Point",o[o.Circle=2]="Circle",o[o.Polygon=3]="Polygon",o[o.Rectangle=4]="Rectangle";})(it||(it={}));var f=class o{static{h(this,"P2JSHelper");}static aabbToBoundingBox(t){return 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 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.Body({position:t.position,angle:t.angle,type:t.type});return e.shapes=t.shapes,e}};var ot="border";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},X=new $,Mt=class{static{h(this,"PhysicsInternalGateway");}createBody(t,e,i,r,s){return X.trigger("createBody",t,e,i,r,s)}getMaterial(t,e){return X.trigger("getMaterial",t,e)}getMaterialDefinition(t,e){return X.trigger("getMaterialDefinition",t,e)}getGroupConstant(t,e){return X.trigger("getGroupConstant",t,e)}getMaskConstant(t,e){return X.trigger("getMaskConstant",t,e)}addBody(t,e,i,r,s){return X.trigger("addBody",t,e,i,r,s)}removeBody(t,e){return X.trigger("removeBody",t,e)}subscribeToPhysicsStep(t,e){return X.trigger("subscribeToPhysicsStep",t,e)}};Mt=lo([d()],Mt);var b=class o extends k{static{h(this,"PhysicsEntity");}static{this.ƀhd=new Map;}static{this.ƀhk=new Map;}static getFromP2BodyID(t){return o.ƀhd.get(t)}static getFromP2BodyIDOrFail(t){let e=o.ƀhd.get(t);if(!e)throw new Error(`PhysicsEntity with p2BodyID ${t} not found`);return e}static getPhysicsInstanceOrFail(t){let e=o.ƀhk.get(t);if(!e)throw new Error(`PhysicsEntity with id ${t} not found`);return e}static getPhysicsEntities(){return Array.from(o.ƀhk.values())}get area(){return this.ƀt}get mass(){return this.ƀgf}get collisions(){return this.ƀax}constructor(t,e,i){super(),this.ƀgr=new Action,this.onCollision=this.ƀgr.notifier,this.type="dynamic",this.ƀt=0,this.ƀgf=0,this.ƀax=[],this.physicsWorldID=t,this.ƀhm=T.get(Mt);let r=this.ƀhm.getMaterial(this.physicsWorldID,e.shapeDefinition.materialName),s=this.ƀhm.getMaterialDefinition(this.physicsWorldID,e.shapeDefinition.materialName);if(this.type=i,this.physicsBodyGroup=e.shapeDefinition.group,this.includeInPathfinding=e.includeOnPathfinding,this.ƀhl=this.ƀhm.getGroupConstant(this.physicsWorldID,this.physicsBodyGroup),this.ƀhn=this.ƀhm.getMaskConstant(this.physicsWorldID,this.physicsBodyGroup),this.p2Body=this.ƀhm.createBody(this.physicsWorldID,e,r,s,this.type),this.ƀt=this.p2Body.getArea(),this.ƀgf=this.p2Body.mass,this.p2Body.position=f.vectorToArray(e.position),this.p2Body.angle=e.rotation.value,!this.ƀhm.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.ƀhd.set(this.p2Body.id,this),o.ƀhk.set(this.id,this);}destroy(){this.destroyed||(super.destroy(),this.ƀhm.removeBody(this.physicsWorldID,this.p2Body),o.ƀhd.delete(this.p2Body.id),o.ƀhk.delete(this.id));}canCollideWith(t){return f.arePhysicsGroupsCollidable(this.ƀhl,this.ƀhn,t.ƀhl,t.ƀhn)}ƀiw(t){this.ƀax=t,t.length>0&&this.ƀgr.trigger(t);}};var re=class extends b{static{h(this,"ImmovablePhysicsEntity");}constructor(t,e){super(t,e,"static"),this.position=f.arrayToVector(this.p2Body.position),this.rotation=new Radian(this.p2Body.angle);}convertToDTO(){return {entityID:this.id,classID:this.classID,position:this.position,rotation:this.rotation,velocity:Vector.zero,rotationalSpeed:0}}};var xi=class extends k{static{h(this,"MovableEntity");}constructor(){super(),this.position=new Variable(Vector.zero),this.rotation=new Variable(Radian.get0),this.velocity=new Variable(Vector.zero),this.rotationalSpeed=new Variable(0),y.beforeSceneUpdateAction.subscribe(({time:t,delta:e})=>{this.ƀjo(t,e);}).attach(this);}ƀjo(t,e){this.position.value=this.position.value.add(this.velocity.value.multiplyNumber(e)),this.rotation.value=new Radian(this.rotation.value.value+this.rotationalSpeed.value*e);}};var vi=class extends b{static{h(this,"MovablePhysicsEntity");}constructor(t,e){super(t,e,"dynamic"),this.position=new Variable(Vector.zero),this.rotation=new Variable(Radian.get0),this.velocity=new Variable(Vector.zero),this.rotationalSpeed=new Variable(0),this.ƀez=false,this.ƀfa=false,this.ƀfc=false,this.ƀfb=false,this.ƀhh(),this.ƀfz(),T.get(Mt).subscribeToPhysicsStep(t,({time:i,delta:r})=>this.ƀjo(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}}ƀjo(t,e){this.ƀez=true,this.ƀfa=true,this.ƀfc=true,this.ƀfb=true,this.ƀhh();}ƀhh(){this.position.value=f.arrayToVector(this.p2Body.position),this.rotation.value=new Radian(this.p2Body.angle),this.velocity.value=f.arrayToVector(this.p2Body.velocity),this.rotationalSpeed.value=this.p2Body.angularVelocity;}ƀfz(){this.position.subscribe(t=>{this.ƀez?this.ƀez=false:this.p2Body.position=[t.x,t.y];}).attach(this),this.rotation.subscribe(t=>{this.ƀfa?this.ƀfa=false:this.p2Body.angle=t.value;}).attach(this),this.velocity.subscribe(t=>{this.ƀfc?this.ƀfc=false:this.p2Body.velocity=[t.x,t.y];}).attach(this),this.rotationalSpeed.subscribe(t=>{this.ƀfb?this.ƀfb=false:this.p2Body.angularVelocity=t;}).attach(this);}};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)},v=class extends k{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 Variable(false),this.lastP2Time=new Variable(0),this.onPhysicsStep=new 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=fo([ut(),mo("design:paramtypes",[Vector,Boolean,U.World,Map,Map,Map,Map])],v);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},K=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}};K=xo([d()],K);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},bo=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},Ve=class{static{h(this,"AvailabilityGridCacheService");}constructor(t){this.ƀhj=t;}getCollidableGrids(t,e){let i=[];return t.availabilityGridCache.forEach((r,s)=>{r.forEach((n,a)=>{this.ƀhj.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();}};Ve=vo([d(),bo("design:paramtypes",[K])],Ve);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},So=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},nt=class{static{h(this,"AvailabilityGridService");}constructor(t,e){this.ƀhj=t,this.ƀx=e;}onBodyAdded(t,e,i){e.aabbNeedsUpdate=true,e.updateAABB();let r=f.aabbToBoundingBox(e.aabb);this.ƀx.getCollidableGrids(t,i).forEach(s=>{let n=B.areaToGridArea(r,s.cellSize);s.grid.setArea(n,false);});}findClosestAvailableSpace(t,e,i,r=Dt){return e.aabbNeedsUpdate=true,e.updateAABB(),Jt.findByConvertingGridSpace(this.getAvilabilityGrid(t,r,i),f.aabbToBoundingBox(e.aabb),r)}getAvilabilityGrid(t,e,i){let r=this.ƀx.get(t,e,i);return r||(r=this.ƀbx(t,e,i),this.ƀx.set(t,e,i,r)),r}ƀbx(t,e,i){let r=new Grid({size:new 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.ƀhj.canCollide(t,n.physicsBodyGroup,i)){let a=this.ƀdv(s,e);r.setArea(a,false);}}),r}ƀdv(t,e){let i=f.aabbToBoundingBox(t.aabb);return B.areaToGridArea(i,e)}};nt=Po([d(),So("design:paramtypes",[K,Ve])],nt);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},Ro=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},Dt=50,Bt=class{static{h(this,"PathFinderService");}constructor(t){this.ƀhi=t;}findPathAStar(t,e,i,r,s){s||(s={}),s.neighborType===void 0&&(s.neighborType=GridNeighborType.Ortogonal),s.gridCellSize===void 0&&(s.gridCellSize=Dt);let n=v.getInstanceByIDOrFail(t),a,l;Comparator.isNumber(i)?(l=b.getPhysicsInstanceOrFail(i).p2Body,a=f.arrayToVector(l.position)):a=i;let c=B.positionToGridPosition(e,s.gridCellSize),p=B.positionToGridPosition(a,s.gridCellSize),m=this.ƀhi.getAvilabilityGrid(n,s.gridCellSize,r);if(l){let C=f.aabbToBoundingBox(l.aabb),bt=B.areaToGridArea(C,s.gridCellSize);m.setArea(bt,true);}let g=Yt.findPath(m,c,p,s.neighborType);return g.path=g.path.map(C=>B.gridPositionToPosition(C,s.gridCellSize)),g}findPathDirection(t,e,i,r,s=Dt){let n=v.getInstanceByIDOrFail(t),a;if(Comparator.isNumber(i)){let g=b.getPhysicsInstanceOrFail(i);a=f.aabbToBoundingBox(g.p2Body.aabb);}else a=new Rectangle(i,i);let l=B.areaToGridArea(a,s),c=JSON.stringify({targetGridArea:l,collidableWithGroup:r}),p=n.vectorFieldCache.get(c);if(!p){let g=this.ƀhi.getAvilabilityGrid(n,s,r);p=new Xt(l,g),n.vectorFieldCache.set(c,p);}let m=B.positionToGridPosition(e,s);return p.getDirectionToTarget(m)}};Bt=Co([d(),Ro("design:paramtypes",[nt])],Bt);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},H=new $,bi=class{static{h(this,"PhysicsGateway");}createPhysicsWorld(t){return H.trigger("createPhysicsWorld",t)}getMapSize(t){return H.trigger("getMapSize",t)}setPaused(t,e){return H.trigger("setPaused",t,e)}hitTest(t,e){return H.trigger("hitTest",t,e)}findPath(t,e,i,r,s){return H.trigger("findPath",t,e,i,r,s)}findPathDirection(t,e,i,r){return H.trigger("findPathDirection",t,e,i,r)}applyImpulse(t,e,i,r){return H.trigger("applyImpulse",t,e,i,r)}createExplosion(t,e,i,r,s,n){return H.trigger("createExplosion",t,e,i,r,s,n)}createElipticExplosion(t,e,i,r,s,n,a){return H.trigger("createElipticExplosion",t,e,i,r,s,n,a)}printPathfindingTestGrid(t,e,i,r,s,n=Dt){return H.trigger("printPathfindingTestGrid",t,e,i,r,s,n)}};bi=Oo([d()],bi);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},Do=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.ƀy=t,this.ƀhf=e;}printPathfindingTestGrid(t,e,i,r,s,n){let a=v.getInstanceByIDOrFail(t);this.ƀy.getAvilabilityGrid(a,n,r).map((c,p)=>({position:B.gridPositionToPosition(p,n),availability:c})).forEach(c=>{if(c.position.isInsideRectangle(s)){let p=this.ƀhf.findPathDirection(t,c.position,i,r),m;p===void 0?m=E.createRectangleBorders(new Vector(8,8),2,ColorHelper.red).toSprite().displayParent(e).setPosition(c.position,{round:false}).attach(a):m=E.createArrow(25,c.availability?ColorHelper.green:ColorHelper.red).toSprite().displayParent(e).setPosition(c.position,{round:false}).setRotation(p).attach(a),new D(m,"alpha",{duration:1e3,animation:P.easeIn}).animate({alpha:0}).tap(()=>m.destroy()).attach(m);}});}createExplosionDebugVisual(t,e,i,r,s,n=300){let a=new u().displayParent(e).setAlpha(.5).attach(t);E.createCircle(s,ColorHelper.blue).toSprite().displayParent(a).setPosition(r,{round:false}).setAlpha(.5).attach(t),i.forEach(c=>{let p=c.hits.length>0?ColorHelper.red:ColorHelper.white;E.createVector(r,c.line.to,p).toSprite().displayParent(a).attach(t);}),new D(a,"alpha",{duration:n,animation:P.easeIn}).animate({alpha:0}).tap(()=>a.destroy()).attach(a);}createElipticExplosionDebugVisual(t,e,i,r,s,n,a=300){let l=new u().displayParent(e).setAlpha(.5).attach(t);E.createElipse(n,ColorHelper.blue).toSprite().displayParent(l).setPosition(r,{round:false}).setRotation(s).setAlpha(.5).attach(t),i.forEach(p=>{let m=p.hits.length>0?ColorHelper.red:ColorHelper.white;E.createVector(p.line.from,p.line.to,m).toSprite().displayParent(l).attach(t);}),new D(l,"alpha",{duration:a,animation:P.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 Radian(t.angle),n=i?.color??ColorHelper.blue,a=new u().displayParent(e).setPosition(r,{round:false}).setRotation(s).setAlpha(.5).attachToRoot();t.shapes.forEach(c=>{this.ƀcq(c,n).displayParent(a).attachToRoot();}),new D(a,"alpha",{duration:1e3,animation:P.easeIn}).animate({alpha:0}).tap(()=>a.destroy()).attach(a);}ƀcq(t,e){switch(t.type){case U.Shape.PARTICLE:throw new Error("Not implemented");case U.Shape.LINE:throw new Error("Not implemented");case U.Shape.PLANE:throw new Error("Not implemented");case U.Shape.CIRCLE:throw new Error("Not implemented");case U.Shape.CAPSULE:throw new Error("Not implemented");case U.Shape.BOX:throw new Error("Not implemented");case U.Shape.HEIGHTFIELD:throw new Error("Not implemented");case U.Shape.CONVEX:return this.ƀcp(t,e);default:throw new Error("Not implemented")}}ƀcp(t,e){let i=[t.vertices.map(r=>({x:r[0],y:r[1]}))];return E.createPolygon(i,e).toSprite()}};Q=Mo([d(),Do("design:paramtypes",[nt,Bt])],Q);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},_o=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},Le=class{static{h(this,"HitTestService");}constructor(t){this.ƀju=t;}hitTest(t,e){let i=t.world,r=b.getFromP2BodyIDOrFail(t.id),s=f.cloneP2Body(t);this.ƀs(s,e);let n=i.broadphase.aabbQuery(i,this.ƀdi(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.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?ColorHelper.red:ColorHelper.green;this.ƀju.createPhysicsEntityShapeVisual(t,e.testLayerID,{overridePosition:e.overridePosition,overrideRotation:e.overrideRotation,color:l});}return a}ƀs(t,e){e?.overridePosition&&(t.position=f.vectorToArray(e.overridePosition)),e?.overrideRotation&&(t.angle=e.overrideRotation.value);}ƀdi(t){return t.aabbNeedsUpdate=true,t.updateAABB(),t.aabb}};Le=Fo([d(),_o("design:paramtypes",[Q])],Le);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},Ne=class{static{h(this,"CollisionsService");}registerPhysicsWorld(t){t.p2World.on("beginContact",e=>{e.contactEquations.forEach(i=>{this.ƀie(t,i);});});}step(t,e,i){b.getPhysicsEntities().forEach(r=>{r.ƀax=[];}),t.p2World.narrowphase.contactEquations.forEach(r=>{this.ƀie(t,r);}),t.bodiesInContactWith.forEach((r,s)=>{this.ƀep(r.p2Body),r.entity.ƀiw(t.collisionReports.get(s)||[]);}),t.bodiesInContactWith.clear(),t.collisionReports.clear();}ƀep(t){let e=f.arrayToVector(t.velocity);e.length>yi&&(e=e.normalize(yi),t.velocity=f.vectorToArray(e)),t.angularVelocity=Math.min(Math.max(t.angularVelocity,-wi),wi);}ƀie(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.ƀdn(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);}ƀdn(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.ƀec(i);return {collisionDetailsA:this.ƀdm(r,i.bodyA.mass,n,l,t.area),collisionDetailsB:this.ƀdm(s,i.bodyB.mass,a,c,e.area)}}ƀdm(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}}ƀec(t){let e=f.arrayToVector(t.normalA),i=e.multiplyNumber(-1);return {normalA:e,normalB:i}}};Ne=Lo([d()],Ne);var No=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},jo=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},je=class extends re{static{h(this,"BorderEntity");}constructor(t,e){super(t,e);}};je=No([ut(),jo("design:paramtypes",[Number,Object])],je);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},W=1e4,He=class{static{h(this,"BorderService");}createBorders(t,e,i){this.ƀbr(t,new Vector(e.x/2,-W/2),new Vector(e.x+W*2,W),i),this.ƀbr(t,new Vector(e.x/2,e.y+W/2),new Vector(e.x+W*2,W),i),this.ƀbr(t,new Vector(-W/2,e.y/2),new Vector(W,e.y+W*2),i),this.ƀbr(t,new Vector(e.x+W/2,e.y/2),new Vector(W,e.y+W*2),i);}ƀbr(t,e,i,r){return new je(t,{shapeDefinition:{materialName:ot,group:r,shapeType:it.Rectangle,shapeData:i},position:e,rotation:Radian.get0,addInEmptySpace:false,includeOnPathfinding:true}).attachByID(t)}};He=Ho([d()],He);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},or=new U.Material,$o={id:ot,density:Number.MAX_SAFE_INTEGER,velocityDrag:1,rotationalDrag:1},Gt=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.Material),n.set(a.id,a);}),s.has(ot))throw new Error(`Material with name ${ot} cannot be defined, pick another name for the material.`);return s.set(ot,or),n.set(ot,$o),this.ƀc(t,e,i,r,s),{materials:s,materialDefinitions:n}}getMaterial(t,e){let i=v.getInstanceByIDOrFail(t);return this.ƀea(e,i.materials)}getMaterialDefinition(t,e){let i=v.getInstanceByIDOrFail(t);return this.ƀdz(e,i.materialDefinitions)}ƀea(t,e){let i=e.get(t);if(!i)throw new Error(`Could not find material with name ${t}.`);return i}ƀdz(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.ƀds(i.map(n=>n.id),r).forEach(n=>{let a=this.ƀea(n.materialA,s),l=this.ƀea(n.materialB,s);t.addContactMaterial(new U.ContactMaterial(a,l,{friction:n.friction,restitution:n.bounciness,stiffness:n.stiffness,relaxation:n.relaxation}));}),this.ƀd(t,e,i,s);}ƀds(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.ƀea(s.id,r);t.addContactMaterial(new U.ContactMaterial(n,or,{friction:e.friction,restitution:e.bounciness,stiffness:e.stiffness,relaxation:e.relaxation}));});}};Gt=Uo([d()],Gt);var ko=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)},Ft=class{static{h(this,"PhysicsWorldService");}constructor(t,e,i,r,s){this.ƀgg=t,this.ƀah=e,this.ƀy=i,this.ƀay=r,this.ƀhj=s;}createPhysicsWorld(t){let e=new U.World({gravity:[0,0]}),{materials:i,materialDefinitions:r}=this.ƀgg.createMaterials(e,t.borderProperties,t.materialDefinitions,t.materialContactDefinitions),{physicsBodyGroupToP2Group:s,physicsBodyGroupToP2Mask:n}=this.ƀhj.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&&y.cleanUpdateModifier();}).attachToRoot(),this.ƀah.createBorders(a.id,t.mapSize,t.borderProperties.borderBodyGroup),this.ƀay.registerPhysicsWorld(a),t.modifyUpdateCycle?y.registerUpdateModifier((l,c)=>this.ƀjo(a,l,c)):y.beforeSceneUpdateAction.subscribe(({time:l,delta:c})=>{this.ƀjo(a,l,c);}).attach(a),a.id}addBody(t,e,i,r,s){let n=v.getInstanceByIDOrFail(t);if(i){let a=this.ƀy.findClosestAvailableSpace(n,e,r);return a?(e.position[0]+=a.x,e.position[1]+=a.y,n.p2World.addBody(e),s&&this.ƀy.onBodyAdded(n,e,r),true):false}else return n.p2World.addBody(e),s&&this.ƀy.onBodyAdded(n,e,r),true}removeBody(t,e){v.getInstanceByID(t)?.p2World.removeBody(e);}ƀjo(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.ƀay.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);}};Ft=ko([d(),zo("design:paramtypes",[Gt,He,nt,Ne,K])],Ft);var Yo=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},Vt=class{static{h(this,"RayCastingService");}castClosest(t,e,i){let r=new U.RaycastResult,s=new U.Ray({mode:U.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.ƀbm(r,e)}castAllFirstContacts(t,e,i){let r=new Map,s=new U.Ray({mode:U.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.ƀbm(n,e)):n.fraction===a.fraction&&a.isExternal()&&r.set(n.body,this.ƀbm(n,e));},"callback")});return t.p2World.raycast(new U.RaycastResult,s),Array.from(r.values())}ƀbm(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}}};Vt=Yo([d()],Vt);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},lt=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);}};lt=Xo([d()],lt);var Ko=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},Lt=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.ƀbn(r,t.length))}ƀbn(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:Vector.fromTo(s,t.explosionCenter).normalize(),fraction:0,ratioOfHits:i,raycastResults:r,getHitPosition:h(()=>t.explosionCenter,"getHitPosition"),getHitDistance:h(()=>0,"getHitDistance")}}}};Lt=Ko([d()],Lt);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},qo=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},rn=15,Ue=class{static{h(this,"ElipticExplosionService");}constructor(t,e,i,r){this.ƀia=t,this.ƀju=e,this.ƀhz=i,this.ƀfd=r;}createElipticExplosion(t,e,i,r,s,n,a){let l=v.getInstanceByIDOrFail(t),c=this.ƀcc(e,i,r,s,a?.hitOnlyClosest===true,l),p=this.ƀhz.toExplosionHits(c,false);return this.ƀq(p,n),a?.testLayerID&&this.ƀju.createElipticExplosionDebugVisual(l,a.testLayerID,c,e,i,r,a.debugRayDuration),p.map(m=>{let{p2Body:g,...C}=m;return C})}ƀcc(t,e,i,r,s,n){let a=[],l=e.vector,c=e.add(Radian.get90).vector,p=c.normalize(i.x);a.push(new Line(t,t.add(p))),a.push(new Line(t,t.add(p.multiplyNumber(-1))));let m=l.normalize(i.y);a.push(new Line(t,t.add(m))),a.push(new Line(t,t.add(m.multiplyNumber(-1))));let g=Math.round(i.y/rn),C=i.y/(g*2+1)*2,bt=l.normalize(C),se=i.x,ar=Math.pow(i.y,2);return ArrayHelper.createIntegerArray(g).forEach(pt=>{let Pt=C*(pt+1),Ti=bt.multiplyNumber(pt+1),oe=c.normalize(this.ƀek(se,ar,Pt)),ne=t.add(Ti);a.push(new Line(ne,ne.add(oe))),a.push(new Line(ne,ne.add(oe.multiplyNumber(-1))));let ae=t.add(Ti.multiplyNumber(-1));a.push(new Line(ae,ae.add(oe))),a.push(new Line(ae,ae.add(oe.multiplyNumber(-1))));}),a.map(pt=>{if(s){let Pt=this.ƀia.castClosest(n,pt,r);return {line:pt,hits:Pt?[Pt]:[]}}else {let Pt=this.ƀia.castAllFirstContacts(n,pt,r);return {line:pt,hits:Pt}}})}ƀek(t,e,i){return Math.sqrt(1-Math.pow(i,2)/e)*t}ƀq(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.ƀfd.applyImpulse(r.body,r.hitPosition(),s,n);});});}};Ue=Qo([d(),qo("design:paramtypes",[Vt,Q,Lt,lt])],Ue);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,"ExplosionService");}constructor(t,e,i,r){this.ƀia=t,this.ƀju=e,this.ƀhz=i,this.ƀfd=r;}createExplosion(t,e,i,r,s,n){let a=v.getInstanceByIDOrFail(t),l=this.ƀeh(i),c=this.ƀcc(e,i,r,l,n?.hitOnlyClosest===true,a),p=this.ƀhz.toExplosionHits(c);return this.ƀq(e,i,s,l,p),n?.testLayerID&&this.ƀju.createExplosionDebugVisual(a,n.testLayerID,c,e,i,n.debugRayDuration),p}ƀcc(t,e,i,r,s,n){let a=new Radian(PI_360/r),l=new Vector(0,-e),c=a.vector;return ArrayHelper.createEmptyArray(r).map(()=>{let p=t.add(l);return l=l.rotate(c),new Line(t,p)}).map(p=>{if(s){let m=this.ƀia.castClosest(n,p,i);return {line:p,hits:m?[m]:[]}}else {let m=this.ƀia.castAllFirstContacts(n,p,i);return {line:p,hits:m}}})}ƀq(t,e,i,r,s){s.forEach(n=>{if(n.isExternal)n.raycastResults.forEach(a=>{let l=i*(1-a.fraction);this.ƀfd.applyImpulse(a.body,a.hitPosition(),a.line.fromTo,l);});else {let a=Vector.fromTo(t,f.arrayToVector(n.p2Body.position)),l=a.length/e,c=i*r*l/2;this.ƀfd.applyImpulse(n.p2Body,n.getHitPosition(),a,c);}});}ƀeh(t){return t>100?Math.floor(t*.3):Math.floor(t*.26+4)}};$e=sn([d(),on("design:paramtypes",[Vt,Q,Lt,lt])],$e);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},Nt=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)}};Nt=cn([d()],Nt);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},dn=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},Pi=class{static{h(this,"PhysicsController");}constructor(t,e,i,r,s,n,a,l){this.ƀhq=t,this.ƀhf=e,this.ƀju=i,this.ƀda=r,this.ƀcu=s,this.ƀeu=n,this.ƀhp=a,this.ƀfd=l;}createPhysicsWorld(t){return this.ƀhq.createPhysicsWorld(t)}getMapSize(t){return this.ƀhp.getMapSize(t)}setPaused(t,e){this.ƀhq.setPaused(t,e);}hitTest(t,e){let i=b.getPhysicsInstanceOrFail(t);return this.ƀeu.hitTest(i.p2Body,e)}findPath(t,e,i,r,s){return this.ƀhf.findPathAStar(t,e,i,r,{neighborType:s})}findPathDirection(t,e,i,r){return this.ƀhf.findPathDirection(t,e,i,r)}applyImpulse(t,e,i,r){let s=b.getPhysicsInstanceOrFail(t);this.ƀfd.applyImpulse(s.p2Body,e,i,r);}createExplosion(t,e,i,r,s,n){return this.ƀda.createExplosion(t,e,i,r,s,n)}createElipticExplosion(t,e,i,r,s,n,a){return this.ƀcu.createElipticExplosion(t,e,i,r,s,n,a)}printPathfindingTestGrid(t,e,i,r,s,n){this.ƀju.printPathfindingTestGrid(t,e,i,r,s,n);}};Pi=pn([q({controllerLink:H}),dn("design:paramtypes",[Ft,Bt,Q,$e,Ue,Le,Nt,lt])],Pi);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},ke=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 it.Point:return this.ƀbt(n,void 0,i,r,e.shapeDefinition.group,s);case it.Circle:return this.ƀbt(n,e.shapeDefinition.shapeData,i,r,e.shapeDefinition.group,s);case it.Polygon:return this.ƀcb(n,e.shapeDefinition.shapeData,i,r,e.shapeDefinition.group,s);case it.Rectangle:return this.ƀcd(n,e.shapeDefinition.shapeData,i,r,e.shapeDefinition.group,s);default:{e.shapeDefinition.shapeType;throw new Error(`Unexpected case! "${e.shapeDefinition.shapeType}"`)}}}ƀbt(t,e,i,r,s,n){let a=new U.Circle({collisionGroup:t.physicsBodyGroupToP2Group.get(s),collisionMask:t.physicsBodyGroupToP2Mask.get(s),radius:e});a.material=i;let l=new U.Body({type:n==="dynamic"?U.Body.DYNAMIC:U.Body.STATIC,mass:r.density,damping:r.velocityDrag,angularDamping:r.rotationalDrag});return l.addShape(a),l}ƀcb(t,e,i,r,s,n){let a=t.physicsBodyGroupToP2Group.get(s),l=t.physicsBodyGroupToP2Mask.get(s),c=e.map(g=>new U.Convex({vertices:g.map(C=>[C.x,C.y]),collisionGroup:a,collisionMask:l})).map(g=>(g.material=i,g)),p=c.reduce((g,C)=>g+C.area,0),m=new U.Body({type:n==="dynamic"?U.Body.DYNAMIC:U.Body.STATIC,mass:p,damping:r.velocityDrag,angularDamping:r.rotationalDrag});return c.forEach(g=>m.addShape(g)),m.setDensity(r.density),m}ƀcd(t,e,i,r,s,n){let a=new U.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.Body({type:n==="dynamic"?U.Body.DYNAMIC:U.Body.STATIC,mass:l,damping:r.velocityDrag,angularDamping:r.rotationalDrag});return c.addShape(a),c.setDensity(r.density),c}};ke=un([d()],ke);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)},Si=class{static{h(this,"PhysicsInternalController");}constructor(t,e,i,r,s){this.ƀhq=t,this.ƀho=e,this.ƀjb=i,this.ƀhp=r,this.ƀhj=s;}createBody(t,e,i,r,s){return this.ƀjb.createBody(t,e,i,r,s)}getMaterial(t,e){return this.ƀho.getMaterial(t,e)}getMaterialDefinition(t,e){return this.ƀho.getMaterialDefinition(t,e)}getGroupConstant(t,e){return this.ƀhj.getGroupConstant(t,e)}getMaskConstant(t,e){return this.ƀhj.getMaskConstant(t,e)}addBody(t,e,i,r,s){return this.ƀhq.addBody(t,e,i,r,s)}removeBody(t,e){this.ƀhq.removeBody(t,e);}subscribeToPhysicsStep(t,e){return this.ƀhp.subscribeToPhysicsStep(t,e)}};Si=fn([q({controllerLink:X}),mn("design:paramtypes",[Ft,Gt,ke,Nt,K])],Si);export{Oi as AnimationFlicker,J as AnimationInterpolationFunctions,P as Animations,R as AnimationsCompletionHandlingType,D as Animator,ot as BORDER_MATERIAL_NAME,F as BardLegendsHardReset,St as BlendMode,Zt as Camera,Et as CameraGateway,Jt as ClosestAvailableSpaceHelper,u as Container,jt as ContainerEventType,q as ControllerDecorator,$ as ControllerLink,Ye as Cursor,O as DEFAULT_SHADER_RESOLUTION,ti as DeltaTime,ci as DisplayObjectArray,k as Entity,ut as EntityDecorator,Gi as FadeInContent,xe as FadeInStateAnimation,st as FocusingAnimation,x as Game,E as Graphics,re as ImmovablePhysicsEntity,mi as KeyboardService,di as MenuEntity,te as MenuUI,ui as MenuView,ie as MouseService,gi as MouseTargetFocusService,xi as MovableEntity,vi as MovablePhysicsEntity,Yt as PathFinder,b as PhysicsEntity,bi as PhysicsGateway,it as PhysicsShapeType,ai as Placeholder,Wt as PositionConversionHelper,wi as ROTATIONAL_SPEED_LIMIT,_ as ReAnimateHandlingType,hi as RichText,yi as SPEED_LIMIT,he as Scene,vr as SceneDecorator,fi as ScrollAreaUI,tt as ScrollDirection,yt as ScrollMaskUI,T as Service,d as ServiceDecorator,ft as SingletonEntity,Hi as SlideInContent,qe as SlideInContentByIndex,Se as SlideStateAnimation,et as SlideStateAnimationState,Y as Sprite,we as StateAnimation,qt as Text,li as UpdatableContainer,y as UpdateCycle,Xt as VectorFieldPathFinder,xt as VectorSet,dt as View,Je as ViewDecorator};
67
+ }`,e}constructor(t,e){if(super(o.ƀek(),o.ƀds(t*O)),this.ƀcz=t,this.resolution=O,this.ƀcz=t*O,this.ƀcz<0)throw new Error("ExpandWithColorFilter: Expand * resolution cannot be smaller than 0");if(this.ƀcz>10)throw new Error("ExpandWithColorFilter: Expand * resolution cannot be higher than 10");Comparator.isInteger(this.ƀcz)||(this.ƀcz=Math.floor(this.ƀcz));let i=ColorHelper.normalize(e);this.uniforms.color=new Float32Array([i.red,i.green,i.blue]),this.uniforms.expandSquared=this.ƀcz*this.ƀcz,this.padding=this.ƀcz;}apply(t,e,i,r){this.uniforms.pixelSize=new Float32Array([1/(e.width*O),1/(e.height*O)]),t.applyFilter(this,e,i,r);}};var Pe=class extends L.Filter{static{h(this,"GlowFilter");}constructor(t){super(),this.resolution=O;let e={blurRadius:1,expand:0,color:ColorHelper.white,blendMode:Tt.Screen,...t};this.ƀda=new Se(e.expand,e.color);let i=Comparator.isNumber(e.blurRadius)?new Vector(e.blurRadius,e.blurRadius):e.blurRadius;this.ƀag=new Et(i),this.padding=Math.max(i.x,i.y)+e.expand,this.ƀag.blendMode=L.BLEND_MODES.SCREEN;}apply(t,e,i,r){let s=t.getFilterTexture();this.ƀda.apply(t,e,s,L.CLEAR_MODES.CLEAR),this.ƀag.apply(t,s,i,r),t.returnFilterTexture(s);}};var zt=class o{static{h(this,"GlowSpriteGenerator");}static{this.ƀen=new Map;}static createGlowSpriteFromSprite(t,e,i){let r=this.ƀbc(e),s=Comparator.isNumber(r.blurRadius)?new Vector(r.blurRadius,r.blurRadius):r.blurRadius,n=this.ƀdu(t.texture,s,r.expand,r.color,i),a=new L.Sprite(n);return this.ƀja(a,Vector.fromVec2(t.anchor),Math.max(s.x,s.y)+r.expand),a.alpha=r.glowAlpha,a.blendMode=r.blendMode,a}static ƀdu(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.ƀen.has(n))return o.ƀen.get(n);{let a=this.ƀdv(t,e,i,r);return o.ƀen.set(n,a),a}}else return this.ƀdv(t,e,i,r)}static ƀdv(t,e,i,r){let s=new L.Sprite(t);this.ƀdc(s,Math.max(e.x,e.y)+i),s.filters=[new Pe({blurRadius:e,expand:i,color:r})];let n=w.instance.renderer.generateTexture(s);return n.id=M.insertAsset(n),s.destroy(),n}static ƀja(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 ƀdc(t,e){if(t.isSprite){let s=new L.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 ƀbc(t){let e={glowAlpha:1,blurRadius:5,expand:0,color:ColorHelper.white,blendMode:Tt.Add};return t&&(e={...e,...t}),e}};F.onHardReset.subscribe(()=>{zt.ƀen.clear();}).attachToRoot();var Y=class o extends u{static{h(this,"Sprite");}static createByName(t){let e=w.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.ƀhu,i=e.parent;i&&i.removeChild(e);let r=w.instance.renderer.generateTexture(e,{resolution:2,scaleMode:L.SCALE_MODES.LINEAR,multisample:L.MSAA_QUALITY.HIGH});i&&i.addChild(e);let n={id:M.insertAsset(r),scale:t.scale,size:t.size,anchor:Vector.zero,destroyAssetOnDestroy:true};return new o(n,{ignoreAnchor:true})}constructor(t,e={}){if(super(),this.ƀka=1,!t)throw new Error("Sprite: spriteDefinition cannot be nullish!");this.ƀjj=t,this.pixiSprite=new L.Sprite(M.getAsset(t.id)),this.ƀhu.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.ƀgg?.destroy(),this.ƀai?.destroy(),this.ƀjj.destroyAssetOnDestroy&&(M.destroyAsset(this.ƀjj.id),this.ƀhv&&M.destroyAsset(this.ƀhv.texture.id)),this.ƀhv&&!this.ƀhv.destroyed&&this.ƀhv.destroy());}setTextureScale(t){return this.textureScale=t,this}get textureScale(){return this.ƀka}set textureScale(t){this.ƀka=t,this.pixiSprite.scale.set(t);}get size(){return new Vector(this.pixiSprite.width,this.pixiSprite.height)}getMask(){return this.pixiSprite}set interactive(t){super.interactive=t,t&&this.ƀjj.boundingShapes&&!this.ƀhu.hitArea&&(this.ƀhu.hitArea=new ge(this.ƀjj.boundingShapes,this.size,Vector.fromVec2(this.ƀjj.anchor)));}setMipmap(t){return this.mipmap=t,this}get mipmap(){return this.pixiSprite.texture.baseTexture.mipmap===L.MIPMAP_MODES.ON}set mipmap(t){t?this.pixiSprite.texture.baseTexture.mipmap=L.MIPMAP_MODES.ON:this.pixiSprite.texture.baseTexture.mipmap=L.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 L.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.ƀhv)return this.ƀhv.alpha;throw new Error("Sprite: getGlowFilterAlpha cannot be called before glow filter is added.")}set glowAlpha(t){if(this.ƀhv)this.ƀhv.alpha=t;else throw new Error("Sprite: setGlowFilterAlpha cannot be called before glow filter is added.")}getAlignmentVector(t){let e=Vector.fromVec2(this.ƀjj.anchor).to(t);return new Vector(this.size.x*e.x,this.size.y*e.y)}setGlowEffect(t){return this.ƀhv&&(this.ƀhv.destroy(),this.ƀhv=void 0),t&&(this.ƀhv=zt.createGlowSpriteFromSprite(this.pixiSprite,t,!this.ƀjj.destroyAssetOnDestroy),this.ƀhv.position.set(this.pixiSprite.x,this.pixiSprite.y),this.ƀhv.scale.set(this.pixiSprite.scale.x,this.pixiSprite.scale.y),this.ƀhu.addChild(this.ƀhv)),this}showBoundingShape(t){return t?this.ƀai||(this.ƀai=this.ƀbs().setAlpha(.3).setTint({r:0,g:0,b:200}).displayParent(this)):this.ƀai&&(this.ƀai.destroy(),this.ƀai=void 0),this}getBoundingMask(){if(!this.ƀgg){if(!this.ƀjj.boundingShapes)throw new Error("Sprite: cropOverflowingParts cannot be used without polygonDefinition!");this.ƀgg=this.ƀbs(),this.ƀgg.pixiSprite._maskRefCount=Number.POSITIVE_INFINITY,this.ƀgg.pixiSprite.renderable=false,this.ƀgg.displayParent(this);}return this.ƀgg}ƀbs(){if(!this.ƀjj.boundingShapes)throw new Error("Sprite: bounding shape cannot be created without polygonDefinition!");return E.createPolygon(this.ƀjj.boundingShapes,ColorHelper.white).toSprite().attach(this)}download(){let t=w.instance.renderer.extract.canvas(this.ƀhu);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}};var qe=class{static{h(this,"AnimationEaseInOutFlatter");}start(){}multiplierFunction(t){return 3*(1-t)*Math.pow(t,2)+Math.pow(t,3)}},yt=class o extends u{static{h(this,"ScrollMaskUI");}static{this.ƀcr=new Map;}constructor(t,e,i,r=tt.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 u;r===tt.Horizontal?this.ƀby(e,i,s):this.ƀcf(e,i,s),this.ƀgg=Y.createSnapshotSprite(s).attach(this),s.destroy(),t.setMask(this.ƀgg);}ƀcf(t,e,i){e>0&&this.ƀbv(new Vector(t.x,e)).displayParent(i).attach(i),E.createRectangle(new Vector(t.x,t.y-e*2),ColorHelper.white).toSprite().setPosition(new Vector(0,e),{round:false}).displayParent(i).attach(i),e>0&&this.ƀbv(new Vector(t.x,e)).setPosition(new Vector(t.x,t.y),{round:false}).setRotation(Radian.get180).displayParent(i).attach(i);}ƀby(t,e,i){e>0&&this.ƀbv(new Vector(t.y,e)).setPosition(new Vector(0,t.y),{round:false}).setRotation(Radian.get270).displayParent(i).attach(i),E.createRectangle(new Vector(t.x-e*2,t.y),ColorHelper.white).toSprite().setPosition(new Vector(e,0),{round:false}).displayParent(i).attach(i),e>0&&this.ƀbv(new Vector(t.y,e)).setPosition(new Vector(t.x,0),{round:false}).setRotation(Radian.get90).displayParent(i).attach(i);}ƀbv(t){let i={id:this.ƀbw(t.y),scale:1,size:t,anchor:{x:0,y:0}};return new Y(i,{textureSize:t,ignoreAnchor:true})}ƀbw(t){let e=JSON.stringify({type:"gradient",length:t}),i=o.ƀcr.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 qe;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=L.Texture.from(r);i=M.insertAsset(a),o.ƀcr.set(e,i);}else throw new Error("Canvas context is null")}return i}};var et;(function(o){o[o.Appear=1]="Appear",o[o.Disappear=2]="Disappear";})(et||(et={}));var P;(function(o){o[o.Idle=1]="Idle",o[o.TransitionForward=2]="TransitionForward",o[o.TransitionBackward=3]="TransitionBackward",o[o.Reverting=4]="Reverting";})(P||(P={}));var Te=class extends Attachable{static{h(this,"SlideStateAnimation");}constructor(t){super(),this.ƀn=P.Idle,this.ƀgy=new Action,this.ƀha=new Action,this.ƀhd={duration:500,animation:S.easeInOutCubic,...t},this.ƀjp=new xe({duration:this.ƀhd.duration,animation:this.ƀhd.animation}).onStateChange((e,i)=>this.ƀes(e,i)).onValueChange(e=>this.ƀet(e)).attach(this);}setIndex(t,e){if(!Comparator.isInteger(t))throw new Error("SlideStateAnimation: index must be an integer!");this.ƀfh===void 0?(this.ƀfh=t,this.ƀgy.trigger({state:et.Appear,index:t}),this.ƀjp.setState(t,e)):this.ƀfh!==t?this.ƀgp!==t?this.ƀn===P.Idle?(this.ƀn=t>this.ƀfh?P.TransitionForward:P.TransitionBackward,this.ƀgp=t,this.ƀgy.trigger({state:et.Appear,index:this.ƀgp}),this.ƀjp.setState(t,e)):this.ƀjp.setState(t,e):this.ƀn===P.Reverting&&this.ƀgp===t&&(this.ƀn=t>this.ƀfh?P.TransitionForward:P.TransitionBackward,this.ƀjp.setState(t,e)):(this.ƀn===P.TransitionForward||this.ƀn===P.TransitionBackward)&&(this.ƀn=P.Reverting,this.ƀjp.setState(t,e));}ƀes(t,e){switch(this.ƀfh!==void 0&&this.ƀfh!==t&&this.ƀfh!==e&&this.ƀgy.trigger({state:et.Disappear,index:this.ƀfh}),this.ƀgp!==void 0&&this.ƀgp!==t&&this.ƀgp!==e&&this.ƀgy.trigger({state:et.Disappear,index:this.ƀgp}),e!==void 0&&e!==this.ƀfh&&e!==this.ƀgp&&this.ƀgy.trigger({state:et.Appear,index:e}),this.ƀn){case P.Idle:break;case P.TransitionForward:case P.TransitionBackward:e===void 0?(this.ƀn=P.Idle,this.ƀfh=this.ƀgp,this.ƀgp=void 0):this.ƀfh!==t&&this.ƀeq(t,e);break;case P.Reverting:e===void 0?(this.ƀn=P.Idle,this.ƀgp=void 0):this.ƀfh!==e&&this.ƀeq(t,e);break;default:{this.ƀn;throw new Error(`Unexpected case! "${this.ƀn}"`)}}}ƀet(t){let e=1;(this.ƀn===P.TransitionBackward||this.ƀn===P.Reverting&&this.ƀfh!==void 0&&this.ƀgp!==void 0&&this.ƀfh>this.ƀgp)&&(e=-1),(this.ƀn===P.Idle||t!==0)&&this.ƀha.trigger({value:NumberHelper.ensurePositiveZero(-e*t),index:this.ƀfh}),this.ƀgp!==void 0&&this.ƀha.trigger({value:NumberHelper.ensurePositiveZero(e*(1-t)),index:this.ƀgp});}ƀeq(t,e){this.ƀfh=t,this.ƀgp=e,this.ƀha.trigger({value:0,index:this.ƀfh}),this.ƀn=this.ƀfh<this.ƀgp?P.TransitionForward:P.TransitionBackward;}onStateChange(t){return this.ƀgy.subscribe(e=>t(e.state,e.index)).attach(this),this}onValueChange(t){return this.ƀha.subscribe(e=>t(e.value,e.index)).attach(this),this}};var tt;(function(o){o[o.Horizontal=1]="Horizontal",o[o.Vertical=2]="Vertical";})(tt||(tt={}));var ti=class extends u{static{h(this,"SlideInContentByIndex");}constructor(t,e){super(),this.ƀbu=t,this.ƀcm="x",this.ƀbj=new Map,this.ƀhd={duration:300,animation:S.easeInOutCubic,size:new Vector(500,500),margin:20,direction:tt.Horizontal,...e};let i=this.ƀhd.direction===tt.Horizontal?new Vector(this.ƀhd.size.x+this.ƀhd.margin*2,this.ƀhd.size.y):new Vector(this.ƀhd.size.x,this.ƀhd.size.y+this.ƀhd.margin*2),r=new u().setPosition(this.ƀhd.direction===tt.Horizontal?new Vector(-this.ƀhd.margin,0):new Vector(0,-this.ƀhd.margin),{round:false}).displayParent(this).attach(this);this.ƀbz(i,this.ƀhd.margin,this.ƀhd.direction,r),this.ƀcm=this.ƀhd.direction===tt.Horizontal?"x":"y",this.ƀjp=new Te({duration:this.ƀhd.duration,animation:this.ƀhd.animation}).onStateChange((s,n)=>{if(s===et.Appear){let a=new u().displayParent(this).attach(this);this.ƀbj.set(n,a),this.ƀbu({index:n,container:a});}else {let a=this.ƀbj.get(n);a&&(a.destroy(),this.ƀbj.delete(n));}}).onValueChange((s,n)=>{let a=this.ƀbj.get(n);if(a){let l={x:0,y:0};l[this.ƀcm]=i[this.ƀcm]*s+this.ƀhd.margin,a.setPosition(Vector.fromVec2(l),{round:false});}}).attach(this),this.addChildTo=r;}setIndex(t,e){return this.ƀjp.setIndex(t,e),this}ƀbz(t,e,i,r){new yt(r,new Vector(t.x,t.y),e,i).attach(this);}},Hi=class extends ti{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 xt=class{static{h(this,"VectorSet");}constructor(){this.ƀkm=new Map;}add(t){let e=this.ƀkm.get(t.x);e||(e=new Set,this.ƀkm.set(t.x,e)),e.add(t.y);}has(t){let e=this.ƀkm.get(t.x);return e?e.has(t.y):false}delete(t){let e=this.ƀkm.get(t.x);return e?e.delete(t.y):false}};var ei=class{static{h(this,"DeltaTime");}static adjustMultiplier(t,e){return Math.pow(t,e)}};var B=class{static{h(this,"PositionToGridPositionConverter");}static areaToGridArea(t,e){return new 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 Vector(.5,.5)).multiplyNumber(e)}};var Yt=class{static{h(this,"ClosestAvailableSpaceHelper");}static findByConvertingGridSpace(t,e,i){let r=new Vector(Math.ceil(e.size.x/i)-1,Math.ceil(e.size.y/i)-1),s=B.areaToGridArea(e,i);if(this.ƀar(t,s))return Vector.zero;let n=t.movePositionInsideGrid(s.topLeft),a=Vector.fromTo(s.topLeft,n),l=this.find(t,n,r);if(l){let c=l.add(a),p=Vector.fromTo(s.topLeft.multiplyNumber(i),e.topLeft);return new 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 xt,s=new Queue(e);for(;s.notEmpty;){let n=s.pop();r.add(n);let a=new Rectangle(n,n.add(i));if(this.ƀar(t,a))return Vector.fromTo(e,n);t.getNeighborPositions(n,GridNeighborType.Ortogonal).forEach(l=>{r.has(l)||s.add(l);});}}static ƀar(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 Vector(r,i)))return false;return true}};var Wi=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 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)}},ds=class{static{h(this,"PathfinderGrid");}constructor(t,e){this.ƀep=t,this.ƀjm=e,this.ƀhc=new BinaryHeap("min"),this.ƀav=[],this.ƀgr=new Grid({size:t.size,defaultValue:void 0});let i=new Wi(this.ƀjm,0,Number.MAX_SAFE_INTEGER);this.ƀhc.add(i.pathLength,i);}get hasOpenNodes(){return this.ƀhc.size>0}getNeighbors(t,e){return this.ƀep.getNeighborPositions(t.position,e).filter(i=>this.ƀep.get(i)).map(i=>this.ƀgr.get(i)||this.ƀca(i))}popLowestPathCostNode(){let t=this.ƀhc.pop();return this.ƀhc.delete(t),t.closed=true,this.ƀav.push(t),t}changeNodeCost(t,e,i,r){this.ƀhc.delete(t),t.distanceFromStart=e,t.distanceToEnd=t.getDistance(i),t.parent=r,this.ƀhc.add(t.pathLength,t);}getBestClosedNode(){return this.ƀav.reduce((t,e)=>t.distanceToEnd<e.distanceToEnd?t:e)}ƀca(t){let e=new Wi(t,Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER);return this.ƀgr.set(t,e),this.ƀhc.add(e.pathLength,e),e}},Xt=class{static{h(this,"PathFinder");}static findPath(t,e,i,r){let s=new ds(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 Kt=class{static{h(this,"VectorFieldPathFinder");}constructor(t,e){this.ƀju=t,this.ƀw=e,this.ƀev=this.ƀdx(this.ƀw.size),this.ƀku=new Grid({size:this.ƀw.size,defaultValue:this.ƀev}),this.ƀcn=new Grid({size:this.ƀw.size,defaultValue:void 0});let i=new xt,r=new Queue;for(this.ƀdl(this.ƀw.cropAreaOutsideOfTheGrid(t)).forEach(n=>{this.ƀku.set(n,0),r.add(n);});r.notEmpty;){let n=r.pop();if(!i.has(n)){i.add(n);let a=this.ƀku.getOrFail(n);this.ƀec(n,this.ƀw).forEach(l=>{if(!i.has(l.position)){let c=this.ƀku.getOrFail(l.position),p=a+l.distance;this.ƀw.getOrFail(l.position)&&p<c&&(this.ƀku.set(l.position,p),r.add(l.position));}});}}}getDirectionToTarget(t){if(!t.isInsideRectangle(this.ƀju)){if(t=this.ƀku.movePositionInsideGrid(t),this.ƀcn.has(t))return this.ƀcn.get(t);{let e=this.ƀec(t,this.ƀw),i;return this.ƀku.getOrFail(t)>=this.ƀev?e.some(s=>this.ƀw.get(s.position))&&(e.some(n=>!this.ƀw.get(n.position))?i=this.ƀdr(e):i=this.ƀdm(t,e)):i=this.ƀdm(t,e),this.ƀcn.set(t,i),i}}}ƀdr(t){let e=t.filter(i=>this.ƀw.get(i.position)).map(i=>i.direction.radian);return Radian.getAverage(...e)}ƀdm(t,e){let i=e.filter(r=>this.ƀku.getOrFail(r.position)<this.ƀev).reduce((r,s)=>{let n=this.ƀku.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.ƀev}).bestDirections;return this.ƀei(i,t)}ƀei(t,e){if(t.length>0){let i=t.reduce((r,s)=>r.add(s),Vector.zero);if(i.isZero()||!this.ƀfn(e,i))return Random.pickRandomElement(t).radian;if(t.length>=1)return i.radian}}ƀfn(t,e){let i=t.add(this.ƀkn(e));return this.ƀw.isPointWithinBounds(i)&&this.ƀw.getOrFail(i)}ƀec(t,e){return this.ƀku.getNeighborDirections(t,GridNeighborType.All).map(i=>({position:t.add(i),direction:i,distance:i.x!==0&&i.y!==0?14:10}))}ƀdl(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 Vector(r,i));return e}ƀkn(t){let e=t.normalize().round();return new Vector(e.x,e.y)}ƀdx(t){return (t.x+t.y)*20}};var ys=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},V=class extends ft{static{h(this,"CameraEntity");}constructor(){super(...arguments),this.position=new Variable(Vector.zero),this.offset=new Variable(Vector.zero),this.targetPosition=new Variable(void 0),this.focusingNewTargetInfo=new Variable(void 0);}};V=ys([ut()],V);var ws=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},xs=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},At=class extends dt{static{h(this,"CameraView");}constructor(t){super(),this.ƀcx=t,this.ƀio=new u().setAlpha(0).displayParent(w.instance.stage).attach(this),this.ƀac=E.createRectangle(new Vector(1,1),ColorHelper.black).toSprite({cache:true}).setAlpha(0).displayParent(w.instance.stage).attach(this),this.ƀaa=new u().displayParent(this.ƀio).attach(this),this.ƀao=new u().displayParent(this.ƀio).attach(this),this.ƀdh=new u().setSortableChildren(true).displayParent(this.ƀio).attach(this),this.ƀan=new u().setSortableChildren(true).displayParent(this.ƀao).attach(this),this.ƀdg=new u().setSortableChildren(true).setZIndex(20).displayParent(this.ƀan).attach(this),this.ƀge=new u().setSortableChildren(true).setZIndex(10).displayParent(this.ƀan).attach(this),this.ƀz=new u().setZIndex(0).displayParent(this.ƀan).attach(this),this.ƀh=new D(this.ƀio,"alpha",{duration:500,animation:S.easeInOutCubic,reAnimateHandling:_.CompletePrevious,completionHandling:C.StayInCurrentState}),this.ƀad=new D(this.ƀac,"alpha",{duration:500,animation:S.easeInOutCubic,reAnimateHandling:_.CompletePrevious,completionHandling:C.StayInCurrentState}),w.instance.screenSize.subscribe(e=>{this.ƀac.aspectRatio=e.x/e.y,this.ƀac.scale=Math.max(e.x,e.y),this.ƀac.setPosition(Vector.zero,{holdFrom:Vector.zero});}).attach(this),w.instance.setScreenPositionToStagePositionFunction(e=>new Vector(e.x-this.ƀan.position.x-this.ƀao.position.x,e.y-this.ƀan.position.y-this.ƀao.position.y)),this.ƀcx.position.subscribe(e=>{this.ƀan.position=this.ƀbp(e);}).attach(this),this.ƀcx.offset.subscribe(e=>{this.ƀao.position=e;}).attach(this),this.appear(true,"alpha");}destroy(){this.destroyed||(super.destroy(),w.instance.resetScreenPositionToStagePositionFunction());}getLayers(){return {backgroundScreen:this.ƀaa.id,background:this.ƀz.id,main:this.ƀge.id,foreground:this.ƀdg.id,foregroundScreen:this.ƀdh.id}}appear(t,e){switch(e){case "alpha":return this.ƀad.set({alpha:0}),this.ƀh.set({alpha:t?0:1}),this.ƀh.animate({alpha:t?1:0}).chain(this);case "pureBlack":return this.ƀh.set({alpha:1}),this.ƀad.set({alpha:t?1:0}),this.ƀad.animate({alpha:t?0:1}).chain(this);case "instant":return this.ƀh.set({alpha:t?1:0}),this.ƀad.set({alpha:t?0:1}),SingleEvent.instant();default:{throw new Error('Switch ended with value "never".')}}}ƀbp(t){return Vector.fromTo(t,w.instance.getScreenSizeCenter())}};At=ws([Ye({entity:V}),xs("design:paramtypes",[V])],At);var Ss=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},Ps=1500,Re=class{static{h(this,"CameraService");}createCamera(){return new V().attachToRoot()}getCameraPosition(){let t=V.getInstanceOrFail();return Vector.fromTo(t.offset.value,t.position.value)}setPosition(t){let e=V.getInstanceOrFail();e.targetPosition.value=t;}setTransition(t){let e=V.getInstanceOrFail();e.focusingNewTargetInfo.value={time:w.time,duration:t?.duration??Ps,position:e.position.value,roundPosition:t?.roundPosition??false,roundPositionThreshold:t?.roundPositionThreshold??0,focusingAnimation:t?.animation??st.Instant};}update(t,e){let i=V.getInstanceOrFail(),r=i.targetPosition.value;r&&(i.focusingNewTargetInfo.value?this.ƀfq(i,r,t):i.position.value=r);}ƀfq(t,e,i){let r=t.focusingNewTargetInfo.value;if(r.focusingAnimation===st.Instant)this.ƀbb(t,e);else {let s=(i-r.time)/r.duration;if(s>=1)this.ƀbb(t,e);else {let n;r.focusingAnimation===st.EaseInOut?n=z.easeInOut(s):r.focusingAnimation===st.EaseOut?n=z.easeOut(s):n=1;let a=r.position.lerp(e,n);r.roundPosition&&(Math.abs(a.x-r.position.x)>=r.roundPositionThreshold&&(a=new Vector(Math.round(a.x),a.y)),Math.abs(a.y-r.position.y)>=r.roundPositionThreshold&&(a=new Vector(a.x,Math.round(a.y)))),t.position.value=a;}}}ƀbb(t,e){t.position.value=e,t.focusingNewTargetInfo.value=void 0;}};Re=Ss([d()],Re);var Ts=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},Es=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},si=class{static{h(this,"CameraController");}constructor(t){this.ƀap=t;}createCamera(){return this.ƀap.createCamera().id}update(t,e){this.ƀap.update(t,e);}setPosition(t){this.ƀap.setPosition(t);}setTransition(t){this.ƀap.setTransition(t);}getCameraPosition(){return this.ƀap.getCameraPosition()}};si=Ts([q({controllerLink:gt}),Es("design:paramtypes",[Re])],si);var Rs=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},oi=class{static{h(this,"CameraViewController");}getLayers(){let t=V.getInstanceOrFail().id;return At.getInstanceOrFail(t).getLayers()}appear(t,e){let i=V.getInstanceOrFail().id;return At.getInstanceOrFail(i).appear(t,e)}};oi=Rs([q({controllerLink:we})],oi);var Qt=class{static{h(this,"Camera");}get position(){return this.ƀam.getCameraPosition()}constructor(){this.ƀam=T.get(Rt),this.ƀaq=T.get($t),this.ƀam.createCamera(),this.layers=this.ƀaq.getLayers();}setPosition(t){this.ƀam.setPosition(t);}setTransition(t){this.ƀam.setTransition(t);}appear(t,e="alpha"){return this.ƀaq.appear(t,e)}};var w=class o{static{h(this,"Game");}static get instance(){return this.ƀfk}static{this.pause=Reducer.createOr();}static get camera(){return this.ƀal}static get time(){return y.ƀkb}static get setupOptions(){return this.ƀjc}getScreenSize(){return this.ƀis.value}getScreenSizeCenter(){return this.ƀit.value}constructor(t){if(this.ƀis=new Variable(Vector.zero),this.screenSize=this.ƀis.notifier,this.ƀit=new Variable(Vector.zero),this.screenSizeCenter=this.ƀit.notifier,this.devMode=false,this.resetScreenPositionToStagePositionFunction(),o.ƀfk)throw new Error("There can be only one Game instance!");{this.ƀbf={screenResolution:void 0,maxScreenResolution:void 0,devMode:false,backgroundColor:ColorHelper.black,antialias:false,resolution:1,...t},this.devMode=this.ƀbf.devMode||false;let e=JsonHelper.removeUndefinedProperties({backgroundColor:this.ƀbf.backgroundColor,autoStart:false,antialias:this.ƀbf.antialias,resolution:this.ƀbf.resolution,width:this.ƀbf.screenResolution?.width,height:this.ƀbf.screenResolution?.height,resizeTo:this.ƀbf.screenResolution===void 0?window:void 0});this.ƀht=new L.Application(e);}}async setup(t){o.ƀjc=t,document.body.appendChild(this.ƀht.view),await Promise.all([M.loadGameAssets(t.assetDefinitions)]),o.ƀfk=this,this.stage=new u().attachToRoot(),this.stage.ƀhu=this.ƀht.stage,this.renderer=this.ƀht.renderer,this.ƀjb(),this.stage.sortableChildren=true,globalThis.ƀa=this.ƀht,window.addEventListener("resize",e=>{setTimeout(()=>{this.ƀcv(),this.ƀjb();});}),o.ƀal=new Qt,this.ƀht.start(),this.ƀht.ticker.add(()=>{y.triggerUpdateTick(this.ƀht.ticker.deltaMS);});}setResolution(t){if(this.ƀht.renderer.resolution!==t){this.ƀht.renderer.resolution=t;let e=this.ƀeg();this.ƀht.renderer.resize(e.x,e.y);}}screenPositonToStagePosition(t){let e=Ut.includeScaleInScreenPosition(t,o.instance.stage.scale,o.instance.getScreenSizeCenter());return this.ƀir(e)}setScreenPositionToStagePositionFunction(t){this.ƀir=t;}resetScreenPositionToStagePositionFunction(){this.ƀir=t=>t;}destroyAsset(t){M.destroyAsset(t);}ƀjb(){let t=new Vector(this.ƀht.screen.width,this.ƀht.screen.height);this.ƀis.value=t,this.ƀit.value=t.multiplyNumber(.5).round();}ƀcv(){let t=this.ƀeg();(t.x!==this.ƀht.screen.width||t.y!==this.ƀht.screen.height)&&this.ƀht.renderer.resize(t.x,t.y);}ƀeg(){let t=this.ƀht.screen.width,e=this.ƀht.screen.height;return this.ƀbf.maxScreenResolution&&(t=Math.min(t,this.ƀbf.maxScreenResolution.width),e=Math.min(e,this.ƀbf.maxScreenResolution.height)),new Vector(t,e)}};var Ie=class{static{h(this,"DashedLineHelper");}static getLines(t,e,i){let r=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,m=Math.floor(c/p),g=c-p*m;m>=1&&g<i.dashLength&&(g+=p,m--);let R=s.normalize(g/2),bt=s.normalize(i.dashGap);if(a.push({from:l,to:l.add(R)}),l=l.add(R),m>0){let oe=s.normalize(i.dashLength);ArrayHelper.createEmptyArray(m).forEach(()=>{l=l.add(bt),a.push({from:l,to:l.add(oe)}),l=l.add(oe);});}return l=l.add(bt),a.push({from:l,to:l.add(R)}),a}};var E=class o extends u{static{h(this,"Graphics");}static{this.ƀcr=new Map;}static createArrow(t,e){let i=new L.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 L.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:ColorHelper.white,...i},s=new L.Graphics;return s.lineStyle(r.width,r.color),Ie.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 L.Graphics;return r.lineStyle(2,i),r.moveTo(t.x,t.y),r.lineTo(e.x,e.y),r.lineStyle(1,i),r.beginFill(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 L.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=ColorHelper.white){let i=new L.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 L.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 L.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 L.Graphics,r=JSON.stringify({type:"polygon",polygon:t,color:e});return i.beginFill(e),t.forEach(s=>{i.drawPolygon(s.map(n=>new L.Point(n.x,n.y)));}),i.endFill(),new o(i,r)}static createRegularPolygon(t,e,i){let r=new L.Graphics,s=new Radian(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.ƀhu.addChild(t),this.pixiGraphics=t,this.ƀak=e;}destroy(){this.destroyed||(super.destroy(),!this.pixiGraphics.destroyed&&this.pixiGraphics.destroy());}toSprite(t){let e={cacheName:this.ƀak,cache:false,...t},i=this.ƀeh(e.cacheName,e.cache),r={id:i.assetID,scale:1,size:i.bounds,anchor:{x:0,y:0},destroyAssetOnDestroy:!e.cache},s=new Y(r,{texturePosition:i.bounds,ignoreAnchor:true});return this.attachToRoot(),this.destroy(),s}ƀeh(t,e){if(e){let i=o.ƀcr.get(t);return i||(i=this.ƀce(),o.ƀcr.set(t,i)),i}else return this.ƀce()}ƀce(){let t=w.instance.renderer.generateTexture(this.pixiGraphics);t.id=M.insertAsset(t);let e=this.pixiGraphics.getBounds();return {assetID:t.id,bounds:new Vector(e.x,e.y)}}};var ai=class extends u{static{h(this,"Placeholder");}constructor(t){super(),this.ƀhw=new L.Graphics,this.ƀhw.beginFill(0,1e-9),this.ƀhw.drawRect(0,0,t.x,t.y),this.ƀhw.endFill(),this.ƀhu.addChild(this.ƀhw);}destroy(){this.destroyed||(super.destroy(),this.ƀhw.destroy());}};var Ot=class{static{h(this,"TextStyleConverter");}static getPixiTextStyle(t){let e={color: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:Radian.get60,distance:10,color:ColorHelper.black,alpha:.5,...i};r={dropShadow:true,dropShadowBlur:s.blur,dropShadowAngle:s.angle.value,dropShadowDistance:s.distance,dropShadowColor:ColorHelper.rgbToHex(s.color),dropShadowAlpha:s.alpha};}return JsonHelper.removeUndefinedProperties({fontFamily:e.fontFamily,fill: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 Oe=class{static{h(this,"RichTextDataInConverter");}static process(t,e){let i=new Set(e.styles?Object.keys(e.styles):[]),r=RichTextSeparator.process(t,i),s=this.ƀfg(r,e),n=this.ƀr(s);return this.ƀjh(n)}static ƀfg(t,e){let i=new Map,r=new Map,s=h((a,l)=>{if(r.has(l))return r.get(l);let c=Ot.getPixiTextStyle(a);return r.set(l,c),c},"GetPixiStyle");return t.map(a=>{let{style:l,cacheKey:c}=this.ƀdp(a.tags,e,i),p=s(l,c),m=L.TextMetrics.measureText(" ",new L.TextStyle(p),false);return {text:a.text,cacheKey:c,style:l,pixiStyle:p,spaceWidth:m.width}})}static ƀdp(t,e,i){let r=t.join("+");if(i.has(r))return {style:i.get(r),cacheKey:r};let s=this.ƀba(t,e);return i.set(r,s),{style:s,cacheKey:r}}static ƀba(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 ƀr(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 ƀjh(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.ƀji(s.text).map(a=>{let l=new L.TextStyle(s.pixiStyle),c=L.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 ƀji(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 Me=class{static{h(this,"RichTextTypewriter");}get lineIsEmpty(){return this.ƀci.length===0}get remainingWidth(){return this.ƀkv-this.ƀck}constructor(t,e){this.ƀkv=t,this.ƀfy=[],this.ƀci=[],this.ƀck=0,this.ƀfx=new Vector(0,0),this.ƀcj=0;let i={rectangleCutOption:void 0,horizontalAlignment:"left",verticalAlignment:"bottom",...e};if(this.ƀey=i.horizontalAlignment,this.ƀko=i.verticalAlignment,i.rectangleCutOption){if(i.rectangleCutOption.position.x<0||i.rectangleCutOption.position.x>=this.ƀkv||i.rectangleCutOption.position.y<0)throw new Error("Rectangle cut position is out of bounds");this.ƀcl={direction:i.rectangleCutOption.direction,rectangle:this.ƀbo(i.rectangleCutOption)};}}isSpaceAvailable(t){let e=Math.max(this.ƀcj,t.y),i=this.ƀdy(this.ƀfx.y,this.ƀfx.y+e);return this.ƀck+t.x<=i}insertWord(t){let e=Math.max(this.ƀcj,t.style.height);if(this.ƀci.length===0){let i=this.ƀdz(this.ƀfx.y,this.ƀfx.y+e);this.ƀfx=new Vector(i,this.ƀfx.y),this.ƀck=this.ƀfx.x;}this.ƀci.push({chunk:t,position:new Vector(this.ƀck,this.ƀfx.y)}),this.ƀcj=e,this.ƀck+=t.style.width;}newLine(){let t=this.ƀfx.y+this.ƀcj,e=this.ƀdz(t,t);this.ƀde(),this.ƀfx=new Vector(e,t),this.ƀck=this.ƀfx.x,this.ƀcj=0;}print(){return this.ƀde(),this.ƀfy}ƀde(){this.ƀci.length>0&&(this.ƀfy.push(this.ƀg(this.ƀci)),this.ƀci=[]);}ƀg(t){return t=this.ƀkq(t),t=this.ƀfa(t),t}ƀfa(t){if(this.ƀey==="left")return t;let e=this.ƀfx.y+this.ƀcj,i=this.ƀdz(this.ƀfx.y,e),s=this.ƀdy(this.ƀfx.y,e)-i,n=Math.min(s,t.reduce((l,c)=>l+c.chunk.style.width,0)),a;return this.ƀey==="center"?a=(s-n)/2:a=s-n,t.map(l=>(l={chunk:l.chunk,position:new Vector(l.position.x+a,l.position.y)},l))}ƀkq(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.ƀko){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.ƀko;throw new Error(`Unexpected case! "${this.ƀko}"`)}}return r={chunk:r.chunk,position:new Vector(r.position.x,r.position.y+s)},r})}ƀdz(t,e){return this.ƀcl&&(this.ƀcl.direction==="topLeft"||this.ƀcl.direction==="bottomLeft")&&(this.ƀcl.rectangle.isPointInside(new Vector(0,t),{includeEdges:false})||this.ƀcl.rectangle.isPointInside(new Vector(0,e),{includeEdges:false}))?this.ƀcl.rectangle.bottomRight.x:0}ƀdy(t,e){return this.ƀcl&&(this.ƀcl.direction==="topRight"||this.ƀcl.direction==="bottomRight")&&(this.ƀcl.rectangle.isPointInside(new Vector(this.ƀkv,t),{includeEdges:false})||this.ƀcl.rectangle.isPointInside(new Vector(this.ƀkv,e),{includeEdges:false}))?this.ƀcl.rectangle.topLeft.x:this.ƀkv}ƀbo(t){let e,i;switch(t.direction){case "topRight":e=new Vector(t.position.x,-1/0),i=new Vector(1/0,t.position.y);break;case "topLeft":e=new Vector(-1/0,-1/0),i=t.position;break;case "bottomRight":e=t.position,i=new Vector(1/0,1/0);break;case "bottomLeft":e=new Vector(-1/0,t.position.y),i=new Vector(t.position.x,1/0);break;default:{t.direction;throw new Error(`Unexpected case! "${t.direction}"`)}}return new Rectangle(e,i)}};var De=class{static{h(this,"ConsistentSpaceTextWrapper");}static wrapText(t,e){return t.forEach(i=>{i.forEach((r,s)=>{if(e.isSpaceAvailable(new Vector(r.style.width,r.style.height)))if(r.whitespace&&s===i.length-2){let n=i[i.length-1];e.isSpaceAvailable(new Vector(n.style.width+r.style.width,n.style.height))?e.insertWord(r):this.ƀkw(r,e);}else e.insertWord(r);else e.lineIsEmpty?e.insertWord(r):r.whitespace?this.ƀkw(r,e):(e.newLine(),e.insertWord(r));}),e.newLine();}),e.print()}static ƀkw(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 Be=class{static{h(this,"RichTextDataOutConverter");}static process(t){return t=this.ƀgl(t),t=this.ƀkf(t),this.ƀat(t)}static ƀgl(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 ƀkf(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 ƀat(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 qt=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=Oe.process(t,e),r=JsonHelper.removeUndefinedProperties({rectangleCutOption:e.rectangleCut,verticalAlignment:e.verticalAlignment,horizontalAlignment:e.default.align}),s=new Me(e.default.wordWrapWidth??1/0,r),n=De.wrapText(i,s);return Be.process(n)}};var Ws=1,Xi=1/Ws,te=class extends u{static{h(this,"Text");}get ƀjy(){if(!this.ƀjz){let t=new L.TextStyle(this.ƀhy);this.ƀjz=L.TextMetrics.measureText(this.ƀjx,t);}return this.ƀjz}get ascent(){return this.ƀjy.fontProperties.ascent}constructor(t,e){super(),this.ƀhy=Ot.getPixiTextStyle(e),this.setText(t);}destroy(){this.destroyed||(super.destroy(),!this.ƀhx.destroyed&&this.ƀhx.destroy());}setAnchor(t){return this.anchor=t,this}get anchor(){return new Vector(this.ƀhx.anchor.x,this.ƀhx.anchor.y)}set anchor(t){this.ƀi=t,this.ƀhx.anchor.set(t.x,t.y);}setText(t){return this.ƀjx!==t&&(this.ƀjx=t,this.ƀif()),this}setColor(t){let e=ColorHelper.rgbToHex(t);return this.ƀhy.fill!==e&&(this.ƀhy.fill=e,this.ƀif()),this}ƀif(){this.ƀhx?.destroy(),this.ƀjs?.destroy(),this.ƀjs=void 0,this.ƀjz=void 0;let t=new L.TextStyle(this.ƀhy);this.ƀhx=new L.Text(this.ƀjx,t),this.ƀij(),this.ƀi&&this.ƀhx.anchor.set(this.ƀi.x,this.ƀi.y),this.ƀhx.scale.set(Xi,Xi),this.ƀhu.addChild(this.ƀhx),this.ƀhy.lineThrough&&(this.ƀjs=this.ƀe(this.ƀhx,this.ƀhy.fill),this.ƀhu.addChild(this.ƀjs));}ƀij(){let t=L.TextMetrics.measureText(this.ƀjx,new L.TextStyle({...this.ƀhy,dropShadow:false,dropShadowAlpha:0,dropShadowBlur:0,dropShadowDistance:0}));this.ƀhx.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=L.TextMetrics.measureText(t.text,t.style),r=Math.max(1,Math.round(i.lineHeight*.07)),s=r%2*.5,n=new L.Graphics;n.lineStyle(r,e);let a=0;return i.lines.forEach((l,c)=>{let p=L.TextMetrics.measureText(l,t.style),m=Math.round(a+(p.fontProperties.ascent-p.fontProperties.descent)*.6+p.fontProperties.descent)+s,g=0;t.style.align==="center"?g=0+(t.width-p.width)*.5:t.style.align==="right"&&(g=0+t.width-p.width),g=Math.floor(g),n.moveTo(Math.floor(g),m),n.lineTo(Math.floor(g+p.width),m),a+=p.lineHeight;}),n.endFill(),n}};var hi=class extends u{static{h(this,"RichText");}constructor(t,e){super(),qt.process(t,e).forEach(r=>new te(r.text,r.style).setPosition(r.position).displayParent(this).attach(this));}};var li=class extends u{static{h(this,"UpdatableContainer");}},ci=class extends u{static{h(this,"DisplayObjectArray");}constructor(t,e){super(),this.ƀbu=t,this.ƀco=new Map,this.ƀhd={trackBy:h((i,r)=>r,"trackBy"),positioning:{direction:"vertical",spacing:0},...e};}set(t){let e=new Set(this.ƀco.keys()),i=0;t.forEach((r,s)=>{let n=this.ƀhd.trackBy(r,s),a;this.ƀco.has(n)?(a=this.ƀco.get(n),e.delete(n),a.update(r)):(a=this.ƀbu(r).displayParent(this).attach(this),this.ƀco.set(n,a)),this.ƀhd.positioning.direction==="horizontal"?(a.x=i,i+=a.size.x+this.ƀhd.positioning.spacing):(a.y=i,i+=a.size.y+this.ƀhd.positioning.spacing);}),e.forEach(r=>{this.ƀco.get(r).destroy(),this.ƀco.delete(r);});}};var ee=class o extends u{static{h(this,"MenuUI");}static{this.ƀfm=Reducer.createExistenceChecker();}static{this.isAnyMenuTransitioning=this.ƀfm.notifier;}static getIsAnyMenuTransitioning(){return o.ƀfm.value}constructor(t,e){super(),this.ƀgv=new SingleAction,this.onCreate=this.ƀgv.notifier,this.ƀgx=new SingleAction,this.onOpen=this.ƀgx.notifier,this.ƀgs=new SingleAction,this.onClose=this.ƀgs.notifier,this.ƀaw=false;let i={closeOnBackgroundClick:true,appearAnimationDuration:150,backgroundDarkeningRatio:.3,...e};this.setAlpha(0),this.ƀo=new D(this,"alpha",{animation:S.easeInOutCubic,duration:i.appearAnimationDuration,reAnimateHandling:_.CompletePrevious,completionHandling:C.StayInCurrentState});let r=E.createRectangle(new Vector(1,1),ColorHelper.black).toSprite({cache:true}).setAlpha(i.backgroundDarkeningRatio).setInteractive(true).displayParent(this).attach(this);this.ƀgj=Y.createByName(t).setPosition(new Vector(0,0)).setInteractive(true).displayParent(this).attach(this),w.instance.screenSize.subscribe(n=>{r.aspectRatio=n.x/n.y,r.scale=Math.max(n.x,n.y),r.setPosition(Vector.zero,{holdFrom:Vector.half}),this.setPosition(n.multiplyNumber(.5));}).attach(this),this.ƀgv.resolve();let s=o.ƀfm.effect().attach(this);this.ƀo.animate({alpha:1}).chain(this).tap(()=>{this.ƀgx.resolve(),s.destroy(),i.closeOnBackgroundClick&&r.on(Pt.Click).take(1).tap(()=>this.close()).attach(this);}).attachToRoot();}getBoundingMask(){return this.ƀgj.getBoundingMask()}close(){if(!this.ƀaw){this.ƀaw=true;let t=o.ƀfm.effect().attach(this);this.ƀo.animate({alpha:0}).chain(this).map(()=>{this.ƀgs.resolve(),t.destroy(),this.destroy();}).chainToRoot();}return this.onClose.toSingleEvent().destroyIfNotAttached()}};var di=class extends ft{static{h(this,"MenuEntity");}static subscribeIsOpen(){return ActionLib.merge(this.continuesSubscription().map(t=>t.type==="open"),SingleEvent.instant(this.getInstance()!==void 0))}constructor(t){super(),this.ƀhd=t,queueMicrotask(()=>{if(!this.ƀgk)throw new Error("MenuEntity: MenuEntity has to have a MenuView.")});}ƀih(t){this.ƀgk=t,this.ƀgk.onClose.subscribe(()=>this.destroy()).attach(this);}onCreate(){return this.ƀgk.onCreate.toSingleEvent().destroyIfNotAttached()}onOpen(){return this.ƀgk.onOpen.toSingleEvent().destroyIfNotAttached()}onClose(){return this.ƀgk.onClose.toSingleEvent().destroyIfNotAttached()}close(){return this.ƀgk.close()}};var ui=class extends dt{static{h(this,"MenuView");}constructor(t,e,i){super();let r=JsonHelper.removeUndefinedProperties({appearAnimationDuration:i.appearAnimationDuration,backgroundDarkeningRatio:i.backgroundDarkeningRatio,closeOnBackgroundClick:t.ƀhd.closeOnBackgroundClick}),s=new ee(e,r).displayParent(w.camera.layers.foregroundScreen).attach(this);t.ƀih(s);let n=new SingleAction;s.onCreate.subscribe(()=>n.resolve(s)).attach(this),this.onCreate=n.notifier,this.onOpen=s.onOpen.notifier,this.onClose=s.onClose.notifier;}};var Ks=.65,Zs=.01,Fe=class{static{h(this,"SmoothScroller");}get scrollHeight(){return this.ƀiu}get contentSize(){return this.ƀbh.size.ceil()}constructor(t,e,i,r){this.ƀbh=t,this.ƀu=e,this.ƀhg=i,this.ƀjg=r,this.ƀfj=false,this.ƀiu=e-i*2,this.ƀbh.y=i,this.ƀjt=i;}onWheel(t){this.setTarget(this.ƀjt-t*Ks);}scrollToTop(){this.setTarget(1/0);}scrollToBottom(){this.setTarget(-1/0);}setTarget(t){this.ƀjt=NumberHelper.clamp(t,this.ƀu-this.ƀhg-this.contentSize.y,this.ƀhg);}jumpToTarget(){this.ƀbh.y=this.ƀjt;}update(t){let e=this.contentSize;if(e.y<=this.ƀiu){switch(this.ƀjg){case "start":this.ƀjt=this.ƀhg;break;case "center":this.ƀjt=(this.ƀu-e.y)*.5;break;case "end":this.ƀjt=this.ƀu-e.y-this.ƀhg;break;default:{this.ƀjg;throw new Error(`Unexpected case! "${this.ƀjg}"`)}}this.ƀfj||(this.ƀbh.y=this.ƀjt);}this.ƀfj=true;let i=this.ƀjt-this.ƀbh.y;this.ƀbh.y=this.ƀbh.y+i*Zs*t;}};var qs=15,fi=class extends u{static{h(this,"ScrollAreaUI");}get contentAreaSize(){return this.ƀbi}get contentSize(){return this.ƀiv.contentSize}constructor(t,e={}){super();let i={padding:qs,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 u().displayParent(this).attach(this);new yt(r,t,i.padding).attach(this);let s=new L.Graphics;s.beginFill(0,1e-9),s.drawRect(0,0,t.x,t.y),s.endFill(),r.ƀhu.addChild(s);let n=new u().displayParent(r).attach(this);this.ƀiv=new Fe(n,t.y,i.padding,i.smallContentAlign),this.ƀbi=new Vector(t.x,this.ƀiv.scrollHeight),s.eventMode="dynamic",s.addEventListener("wheel",a=>{this.ƀiv.onWheel(a.deltaY);}),n.setInteractive(true),n.ƀhu.addEventListener("wheel",a=>{this.ƀiv.onWheel(a.deltaY);}),y.afterSceneUpdateAction.subscribe(a=>this.ƀiv.update(a.delta)).attach(this),this.addChildTo=n;}scrollToTop(t){this.ƀiv.scrollToTop(),t?.instant&&this.ƀiv.jumpToTarget();}scrollToBottom(t){this.ƀiv.scrollToBottom(),t?.instant&&this.ƀiv.jumpToTarget();}};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},eo=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},mi=class{static{h(this,"KeyboardService");}constructor(){this.ƀft=new Action,this.keyPressed=this.ƀft.notifier,this.ƀfu=new Action,this.keyReleased=this.ƀfu.notifier,this.ƀga=new Set,this.ƀfz=new Set,window.addEventListener("keydown",t=>{this.ƀga.add(t.key),this.ƀfz.add(t.key),!t.repeat&&this.ƀft.trigger(t.key);}),window.addEventListener("keyup",t=>{this.ƀga.delete(t.key),this.ƀfu.trigger(t.key);}),window.addEventListener("blur",()=>{this.ƀga.clear();}),y.afterSceneUpdateAction.subscribe(()=>{this.ƀfz.clear();}).attachToRoot();}isKeyDown(t){return this.ƀga.has(t)}isKeyJustPressed(t){return this.ƀfz.has(t)}};mi=to([d(),eo("design:paramtypes",[])],mi);var io=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)},re=class{static{h(this,"MouseService");}get initialMouseMoveHappened(){return this.ƀfi.value}getStagePosition(){return this.ƀjk.value}getScreenPosition(){return this.ƀiq.value}getMainButtonState(){return this.ƀgd.value}getSecondaryButtonState(){return this.ƀiw.value}constructor(){this.ƀfi=new Variable(false),this.onInitialMouseMove=this.ƀfi.notifier,this.ƀjk=new Variable(Vector.zero,{notifyOnChange:true}),this.stagePosition=this.ƀjk.notifier,this.ƀiq=new Variable(Vector.zero,{notifyOnChange:true}),this.screenPosition=this.ƀiq.notifier,this.ƀgd=new Variable(false),this.mainButtonState=this.ƀgd.notifier,this.ƀiw=new Variable(false),this.secondaryButtonState=this.ƀiw.notifier,this.ƀjl(),window.addEventListener("pointerdown",t=>{t.button===0?this.ƀgd.value=true:t.button===2&&(this.ƀiw.value=true);},{capture:true}),window.addEventListener("pointerup",t=>{t.button===0?this.ƀgd.value=false:t.button===2&&(this.ƀiw.value=false);},{capture:true}),window.addEventListener("blur",()=>{this.ƀgd.value=false,this.ƀiw.value=false;},{capture:true});}ƀjl(){let t=Vector.zero;window.addEventListener("pointermove",e=>{t=new Vector(e.clientX,e.clientY),this.ƀfi.value=true;},{capture:true}),y.beforeSceneUpdateAction.subscribe(()=>{this.ƀiq.value=this.clientPositionToScreenPosition(t);}).attachToRoot(),y.afterSceneUpdateAction.subscribe(()=>{let e=w.instance.screenPositonToStagePosition(this.ƀiq.value);e.isEqual(this.ƀjk.value)?w.instance.renderer.events.onPointerMove(new PointerEvent("pointermove",{clientX:t.x,clientY:t.y,pointerType:"mouse"})):this.ƀjk.value=e;}).attachToRoot();}clientPositionToScreenPosition(t){let i=w.instance.renderer.view.getBoundingClientRect(),r=i.width,s=i.height;if(r<=0||s<=0)return Vector.zero;let n=w.instance.renderer,a=(t.x-i.left)/r*n.screen.width,l=(t.y-i.top)/s*n.screen.height;return a=NumberHelper.clamp(a,0,n.screen.width),l=NumberHelper.clamp(l,0,n.screen.height),new Vector(a,l)}};re=io([d(),ro("design:paramtypes",[])],re);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},oo=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},gi=class{static{h(this,"MouseTargetFocusService");}get focusedInLastFrame(){return this.ƀdf}get lastFocusedPosition(){return this.ƀfw}constructor(t){this.ƀgn=t,this.ƀgz=new Action,this.onTargetFocus=this.ƀgz.notifier,this.ƀkd=0,this.ƀke=false,this.ƀdf=false,this.ƀfw=void 0,y.beforeSceneUpdateAction.subscribe(e=>this.ƀkh(e.delta)).attachToRoot();}ƀkh(t){if(this.ƀgo){let e=this.ƀef(this.ƀgn.getStagePosition(),this.ƀgo);this.ƀhi===void 0?this.ƀhi=e:this.ƀas(e,t);}this.ƀgo=this.ƀgn.getStagePosition();}ƀas(t,e){this.ƀhi-t>10?(this.ƀkd=Math.max(250,this.ƀkd),this.ƀke=true):this.ƀkd>1e3&&(this.ƀke=true);let i=this.ƀkd>=300&&this.ƀke;this.ƀfr(i,t,e);}ƀfr(t,e,i){(t||e>this.ƀhi)&&(this.ƀhi=e),t?(this.ƀke=false,this.ƀkd=0,this.ƀdf=true,this.ƀfw=this.ƀgn.getStagePosition(),this.ƀgz.trigger(this.ƀfw)):(this.ƀkd+=i,this.ƀdf=false);}ƀef(t,e){let i=Vector.fromTo(t,e);return Math.abs(i.x)+Math.abs(i.y)}};gi=so([d(),oo("design:paramtypes",[re])],gi);var yi=10.8,wi=10.01,it;(function(o){o[o.Point=1]="Point",o[o.Circle=2]="Circle",o[o.Polygon=3]="Polygon",o[o.Rectangle=4]="Rectangle";})(it||(it={}));var f=class o{static{h(this,"P2JSHelper");}static aabbToBoundingBox(t){return 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 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.Body({position:t.position,angle:t.angle,type:t.type});return e.shapes=t.shapes,e}};var ot="border";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},X=new $,Bt=class{static{h(this,"PhysicsInternalGateway");}createBody(t,e,i,r,s){return X.trigger("createBody",t,e,i,r,s)}getMaterial(t,e){return X.trigger("getMaterial",t,e)}getMaterialDefinition(t,e){return X.trigger("getMaterialDefinition",t,e)}getGroupConstant(t,e){return X.trigger("getGroupConstant",t,e)}getMaskConstant(t,e){return X.trigger("getMaskConstant",t,e)}addBody(t,e,i,r,s){return X.trigger("addBody",t,e,i,r,s)}removeBody(t,e){return X.trigger("removeBody",t,e)}subscribeToPhysicsStep(t,e){return X.trigger("subscribeToPhysicsStep",t,e)}};Bt=po([d()],Bt);var b=class o extends k{static{h(this,"PhysicsEntity");}static{this.ƀhf=new Map;}static{this.ƀhm=new Map;}static getFromP2BodyID(t){return o.ƀhf.get(t)}static getFromP2BodyIDOrFail(t){let e=o.ƀhf.get(t);if(!e)throw new Error(`PhysicsEntity with p2BodyID ${t} not found`);return e}static getPhysicsInstanceOrFail(t){let e=o.ƀhm.get(t);if(!e)throw new Error(`PhysicsEntity with id ${t} not found`);return e}static getPhysicsEntities(){return Array.from(o.ƀhm.values())}get area(){return this.ƀt}get mass(){return this.ƀgh}get collisions(){return this.ƀax}constructor(t,e,i){super(),this.ƀgt=new Action,this.onCollision=this.ƀgt.notifier,this.type="dynamic",this.ƀt=0,this.ƀgh=0,this.ƀax=[],this.physicsWorldID=t,this.ƀho=T.get(Bt);let r=this.ƀho.getMaterial(this.physicsWorldID,e.shapeDefinition.materialName),s=this.ƀho.getMaterialDefinition(this.physicsWorldID,e.shapeDefinition.materialName);if(this.type=i,this.physicsBodyGroup=e.shapeDefinition.group,this.includeInPathfinding=e.includeOnPathfinding,this.ƀhn=this.ƀho.getGroupConstant(this.physicsWorldID,this.physicsBodyGroup),this.ƀhp=this.ƀho.getMaskConstant(this.physicsWorldID,this.physicsBodyGroup),this.p2Body=this.ƀho.createBody(this.physicsWorldID,e,r,s,this.type),this.ƀt=this.p2Body.getArea(),this.ƀgh=this.p2Body.mass,this.p2Body.position=f.vectorToArray(e.position),this.p2Body.angle=e.rotation.value,!this.ƀho.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.ƀhf.set(this.p2Body.id,this),o.ƀhm.set(this.id,this);}destroy(){this.destroyed||(super.destroy(),this.ƀho.removeBody(this.physicsWorldID,this.p2Body),o.ƀhf.delete(this.p2Body.id),o.ƀhm.delete(this.id));}canCollideWith(t){return f.arePhysicsGroupsCollidable(this.ƀhn,this.ƀhp,t.ƀhn,t.ƀhp)}ƀiy(t){this.ƀax=t,t.length>0&&this.ƀgt.trigger(t);}};var se=class extends b{static{h(this,"ImmovablePhysicsEntity");}constructor(t,e){super(t,e,"static"),this.position=f.arrayToVector(this.p2Body.position),this.rotation=new Radian(this.p2Body.angle);}convertToDTO(){return {entityID:this.id,classID:this.classID,position:this.position,rotation:this.rotation,velocity:Vector.zero,rotationalSpeed:0}}};var xi=class extends k{static{h(this,"MovableEntity");}constructor(){super(),this.position=new Variable(Vector.zero),this.rotation=new Variable(Radian.get0),this.velocity=new Variable(Vector.zero),this.rotationalSpeed=new Variable(0),y.beforeSceneUpdateAction.subscribe(({time:t,delta:e})=>{this.ƀjq(t,e);}).attach(this);}ƀjq(t,e){this.position.value=this.position.value.add(this.velocity.value.multiplyNumber(e)),this.rotation.value=new Radian(this.rotation.value.value+this.rotationalSpeed.value*e);}};var vi=class extends b{static{h(this,"MovablePhysicsEntity");}constructor(t,e){super(t,e,"dynamic"),this.position=new Variable(Vector.zero),this.rotation=new Variable(Radian.get0),this.velocity=new Variable(Vector.zero),this.rotationalSpeed=new Variable(0),this.ƀfb=false,this.ƀfc=false,this.ƀfe=false,this.ƀfd=false,this.ƀhj(),this.ƀgb(),T.get(Bt).subscribeToPhysicsStep(t,({time:i,delta:r})=>this.ƀjq(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}}ƀjq(t,e){this.ƀfb=true,this.ƀfc=true,this.ƀfe=true,this.ƀfd=true,this.ƀhj();}ƀhj(){this.position.value=f.arrayToVector(this.p2Body.position),this.rotation.value=new Radian(this.p2Body.angle),this.velocity.value=f.arrayToVector(this.p2Body.velocity),this.rotationalSpeed.value=this.p2Body.angularVelocity;}ƀgb(){this.position.subscribe(t=>{this.ƀfb?this.ƀfb=false:this.p2Body.position=[t.x,t.y];}).attach(this),this.rotation.subscribe(t=>{this.ƀfc?this.ƀfc=false:this.p2Body.angle=t.value;}).attach(this),this.velocity.subscribe(t=>{this.ƀfe?this.ƀfe=false:this.p2Body.velocity=[t.x,t.y];}).attach(this),this.rotationalSpeed.subscribe(t=>{this.ƀfd?this.ƀfd=false:this.p2Body.angularVelocity=t;}).attach(this);}};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},yo=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},v=class extends k{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 Variable(false),this.lastP2Time=new Variable(0),this.onPhysicsStep=new 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=go([ut(),yo("design:paramtypes",[Vector,Boolean,U.World,Map,Map,Map,Map])],v);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},K=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}};K=bo([d()],K);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},Po=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},Le=class{static{h(this,"AvailabilityGridCacheService");}constructor(t){this.ƀhl=t;}getCollidableGrids(t,e){let i=[];return t.availabilityGridCache.forEach((r,s)=>{r.forEach((n,a)=>{this.ƀhl.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();}};Le=So([d(),Po("design:paramtypes",[K])],Le);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},Eo=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},nt=class{static{h(this,"AvailabilityGridService");}constructor(t,e){this.ƀhl=t,this.ƀx=e;}onBodyAdded(t,e,i){e.aabbNeedsUpdate=true,e.updateAABB();let r=f.aabbToBoundingBox(e.aabb);this.ƀx.getCollidableGrids(t,i).forEach(s=>{let n=B.areaToGridArea(r,s.cellSize);s.grid.setArea(n,false);});}findClosestAvailableSpace(t,e,i,r=Gt){return e.aabbNeedsUpdate=true,e.updateAABB(),Yt.findByConvertingGridSpace(this.getAvilabilityGrid(t,r,i),f.aabbToBoundingBox(e.aabb),r)}getAvilabilityGrid(t,e,i){let r=this.ƀx.get(t,e,i);return r||(r=this.ƀbx(t,e,i),this.ƀx.set(t,e,i,r)),r}ƀbx(t,e,i){let r=new Grid({size:new 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.ƀhl.canCollide(t,n.physicsBodyGroup,i)){let a=this.ƀdw(s,e);r.setArea(a,false);}}),r}ƀdw(t,e){let i=f.aabbToBoundingBox(t.aabb);return B.areaToGridArea(i,e)}};nt=To([d(),Eo("design:paramtypes",[K,Le])],nt);var Io=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},Ao=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},Gt=50,Ft=class{static{h(this,"PathFinderService");}constructor(t){this.ƀhk=t;}findPathAStar(t,e,i,r,s){s||(s={}),s.neighborType===void 0&&(s.neighborType=GridNeighborType.Ortogonal),s.gridCellSize===void 0&&(s.gridCellSize=Gt);let n=v.getInstanceByIDOrFail(t),a,l;Comparator.isNumber(i)?(l=b.getPhysicsInstanceOrFail(i).p2Body,a=f.arrayToVector(l.position)):a=i;let c=B.positionToGridPosition(e,s.gridCellSize),p=B.positionToGridPosition(a,s.gridCellSize),m=this.ƀhk.getAvilabilityGrid(n,s.gridCellSize,r);if(l){let R=f.aabbToBoundingBox(l.aabb),bt=B.areaToGridArea(R,s.gridCellSize);m.setArea(bt,true);}let g=Xt.findPath(m,c,p,s.neighborType);return g.path=g.path.map(R=>B.gridPositionToPosition(R,s.gridCellSize)),g}findPathDirection(t,e,i,r,s=Gt){let n=v.getInstanceByIDOrFail(t),a;if(Comparator.isNumber(i)){let g=b.getPhysicsInstanceOrFail(i);a=f.aabbToBoundingBox(g.p2Body.aabb);}else a=new Rectangle(i,i);let l=B.areaToGridArea(a,s),c=JSON.stringify({targetGridArea:l,collidableWithGroup:r}),p=n.vectorFieldCache.get(c);if(!p){let g=this.ƀhk.getAvilabilityGrid(n,s,r);p=new Kt(l,g),n.vectorFieldCache.set(c,p);}let m=B.positionToGridPosition(e,s);return p.getDirectionToTarget(m)}};Ft=Io([d(),Ao("design:paramtypes",[nt])],Ft);var Do=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},H=new $,bi=class{static{h(this,"PhysicsGateway");}createPhysicsWorld(t){return H.trigger("createPhysicsWorld",t)}getMapSize(t){return H.trigger("getMapSize",t)}setPaused(t,e){return H.trigger("setPaused",t,e)}hitTest(t,e){return H.trigger("hitTest",t,e)}findPath(t,e,i,r,s){return H.trigger("findPath",t,e,i,r,s)}findPathDirection(t,e,i,r){return H.trigger("findPathDirection",t,e,i,r)}applyImpulse(t,e,i,r){return H.trigger("applyImpulse",t,e,i,r)}createExplosion(t,e,i,r,s,n){return H.trigger("createExplosion",t,e,i,r,s,n)}createElipticExplosion(t,e,i,r,s,n,a){return H.trigger("createElipticExplosion",t,e,i,r,s,n,a)}printPathfindingTestGrid(t,e,i,r,s,n=Gt){return H.trigger("printPathfindingTestGrid",t,e,i,r,s,n)}};bi=Do([d()],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},Go=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.ƀy=t,this.ƀhh=e;}printPathfindingTestGrid(t,e,i,r,s,n){let a=v.getInstanceByIDOrFail(t);this.ƀy.getAvilabilityGrid(a,n,r).map((c,p)=>({position:B.gridPositionToPosition(p,n),availability:c})).forEach(c=>{if(c.position.isInsideRectangle(s)){let p=this.ƀhh.findPathDirection(t,c.position,i,r),m;p===void 0?m=E.createRectangleBorders(new Vector(8,8),2,ColorHelper.red).toSprite().displayParent(e).setPosition(c.position,{round:false}).attach(a):m=E.createArrow(25,c.availability?ColorHelper.green:ColorHelper.red).toSprite().displayParent(e).setPosition(c.position,{round:false}).setRotation(p).attach(a),new D(m,"alpha",{duration:1e3,animation:S.easeIn}).animate({alpha:0}).tap(()=>m.destroy()).attach(m);}});}createExplosionDebugVisual(t,e,i,r,s,n=300){let a=new u().displayParent(e).setAlpha(.5).attach(t);E.createCircle(s,ColorHelper.blue).toSprite().displayParent(a).setPosition(r,{round:false}).setAlpha(.5).attach(t),i.forEach(c=>{let p=c.hits.length>0?ColorHelper.red:ColorHelper.white;E.createVector(r,c.line.to,p).toSprite().displayParent(a).attach(t);}),new D(a,"alpha",{duration:n,animation:S.easeIn}).animate({alpha:0}).tap(()=>a.destroy()).attach(a);}createElipticExplosionDebugVisual(t,e,i,r,s,n,a=300){let l=new u().displayParent(e).setAlpha(.5).attach(t);E.createElipse(n,ColorHelper.blue).toSprite().displayParent(l).setPosition(r,{round:false}).setRotation(s).setAlpha(.5).attach(t),i.forEach(p=>{let m=p.hits.length>0?ColorHelper.red:ColorHelper.white;E.createVector(p.line.from,p.line.to,m).toSprite().displayParent(l).attach(t);}),new D(l,"alpha",{duration:a,animation:S.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 Radian(t.angle),n=i?.color??ColorHelper.blue,a=new u().displayParent(e).setPosition(r,{round:false}).setRotation(s).setAlpha(.5).attachToRoot();t.shapes.forEach(c=>{this.ƀcq(c,n).displayParent(a).attachToRoot();}),new D(a,"alpha",{duration:1e3,animation:S.easeIn}).animate({alpha:0}).tap(()=>a.destroy()).attach(a);}ƀcq(t,e){switch(t.type){case U.Shape.PARTICLE:throw new Error("Not implemented");case U.Shape.LINE:throw new Error("Not implemented");case U.Shape.PLANE:throw new Error("Not implemented");case U.Shape.CIRCLE:throw new Error("Not implemented");case U.Shape.CAPSULE:throw new Error("Not implemented");case U.Shape.BOX:throw new Error("Not implemented");case U.Shape.HEIGHTFIELD:throw new Error("Not implemented");case U.Shape.CONVEX:return this.ƀcp(t,e);default:throw new Error("Not implemented")}}ƀcp(t,e){let i=[t.vertices.map(r=>({x:r[0],y:r[1]}))];return E.createPolygon(i,e).toSprite()}};Q=Bo([d(),Go("design:paramtypes",[nt,Ft])],Q);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},Lo=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},Ne=class{static{h(this,"HitTestService");}constructor(t){this.ƀjw=t;}hitTest(t,e){let i=t.world,r=b.getFromP2BodyIDOrFail(t.id),s=f.cloneP2Body(t);this.ƀs(s,e);let n=i.broadphase.aabbQuery(i,this.ƀdj(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.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?ColorHelper.red:ColorHelper.green;this.ƀjw.createPhysicsEntityShapeVisual(t,e.testLayerID,{overridePosition:e.overridePosition,overrideRotation:e.overrideRotation,color:l});}return a}ƀs(t,e){e?.overridePosition&&(t.position=f.vectorToArray(e.overridePosition)),e?.overrideRotation&&(t.angle=e.overrideRotation.value);}ƀdj(t){return t.aabbNeedsUpdate=true,t.updateAABB(),t.aabb}};Ne=Vo([d(),Lo("design:paramtypes",[Q])],Ne);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},je=class{static{h(this,"CollisionsService");}registerPhysicsWorld(t){t.p2World.on("beginContact",e=>{e.contactEquations.forEach(i=>{this.ƀig(t,i);});});}step(t,e,i){b.getPhysicsEntities().forEach(r=>{r.ƀax=[];}),t.p2World.narrowphase.contactEquations.forEach(r=>{this.ƀig(t,r);}),t.bodiesInContactWith.forEach((r,s)=>{this.ƀer(r.p2Body),r.entity.ƀiy(t.collisionReports.get(s)||[]);}),t.bodiesInContactWith.clear(),t.collisionReports.clear();}ƀer(t){let e=f.arrayToVector(t.velocity);e.length>yi&&(e=e.normalize(yi),t.velocity=f.vectorToArray(e)),t.angularVelocity=Math.min(Math.max(t.angularVelocity,-wi),wi);}ƀig(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.ƀdo(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);}ƀdo(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.ƀed(i);return {collisionDetailsA:this.ƀdn(r,i.bodyA.mass,n,l,t.area),collisionDetailsB:this.ƀdn(s,i.bodyB.mass,a,c,e.area)}}ƀdn(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}}ƀed(t){let e=f.arrayToVector(t.normalA),i=e.multiplyNumber(-1);return {normalA:e,normalB:i}}};je=jo([d()],je);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},Wo=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},He=class extends se{static{h(this,"BorderEntity");}constructor(t,e){super(t,e);}};He=Ho([ut(),Wo("design:paramtypes",[Number,Object])],He);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},W=1e4,We=class{static{h(this,"BorderService");}createBorders(t,e,i){this.ƀbr(t,new Vector(e.x/2,-W/2),new Vector(e.x+W*2,W),i),this.ƀbr(t,new Vector(e.x/2,e.y+W/2),new Vector(e.x+W*2,W),i),this.ƀbr(t,new Vector(-W/2,e.y/2),new Vector(W,e.y+W*2),i),this.ƀbr(t,new Vector(e.x+W/2,e.y/2),new Vector(W,e.y+W*2),i);}ƀbr(t,e,i,r){return new He(t,{shapeDefinition:{materialName:ot,group:r,shapeType:it.Rectangle,shapeData:i},position:e,rotation:Radian.get0,addInEmptySpace:false,includeOnPathfinding:true}).attachByID(t)}};We=Uo([d()],We);var ko=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},nr=new U.Material,zo={id:ot,density:Number.MAX_SAFE_INTEGER,velocityDrag:1,rotationalDrag:1},_t=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.Material),n.set(a.id,a);}),s.has(ot))throw new Error(`Material with name ${ot} cannot be defined, pick another name for the material.`);return s.set(ot,nr),n.set(ot,zo),this.ƀc(t,e,i,r,s),{materials:s,materialDefinitions:n}}getMaterial(t,e){let i=v.getInstanceByIDOrFail(t);return this.ƀeb(e,i.materials)}getMaterialDefinition(t,e){let i=v.getInstanceByIDOrFail(t);return this.ƀea(e,i.materialDefinitions)}ƀeb(t,e){let i=e.get(t);if(!i)throw new Error(`Could not find material with name ${t}.`);return i}ƀea(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.ƀdt(i.map(n=>n.id),r).forEach(n=>{let a=this.ƀeb(n.materialA,s),l=this.ƀeb(n.materialB,s);t.addContactMaterial(new U.ContactMaterial(a,l,{friction:n.friction,restitution:n.bounciness,stiffness:n.stiffness,relaxation:n.relaxation}));}),this.ƀd(t,e,i,s);}ƀdt(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.ƀeb(s.id,r);t.addContactMaterial(new U.ContactMaterial(n,nr,{friction:e.friction,restitution:e.bounciness,stiffness:e.stiffness,relaxation:e.relaxation}));});}};_t=ko([d()],_t);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)},Vt=class{static{h(this,"PhysicsWorldService");}constructor(t,e,i,r,s){this.ƀgi=t,this.ƀah=e,this.ƀy=i,this.ƀay=r,this.ƀhl=s;}createPhysicsWorld(t){let e=new U.World({gravity:[0,0]}),{materials:i,materialDefinitions:r}=this.ƀgi.createMaterials(e,t.borderProperties,t.materialDefinitions,t.materialContactDefinitions),{physicsBodyGroupToP2Group:s,physicsBodyGroupToP2Mask:n}=this.ƀhl.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&&y.cleanUpdateModifier();}).attachToRoot(),this.ƀah.createBorders(a.id,t.mapSize,t.borderProperties.borderBodyGroup),this.ƀay.registerPhysicsWorld(a),t.modifyUpdateCycle?y.registerUpdateModifier((l,c)=>this.ƀjq(a,l,c)):y.beforeSceneUpdateAction.subscribe(({time:l,delta:c})=>{this.ƀjq(a,l,c);}).attach(a),a.id}addBody(t,e,i,r,s){let n=v.getInstanceByIDOrFail(t);if(i){let a=this.ƀy.findClosestAvailableSpace(n,e,r);return a?(e.position[0]+=a.x,e.position[1]+=a.y,n.p2World.addBody(e),s&&this.ƀy.onBodyAdded(n,e,r),true):false}else return n.p2World.addBody(e),s&&this.ƀy.onBodyAdded(n,e,r),true}removeBody(t,e){v.getInstanceByID(t)?.p2World.removeBody(e);}ƀjq(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.ƀay.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);}};Vt=Jo([d(),Yo("design:paramtypes",[_t,We,nt,je,K])],Vt);var Ko=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},Nt=class{static{h(this,"RayCastingService");}castClosest(t,e,i){let r=new U.RaycastResult,s=new U.Ray({mode:U.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.ƀbm(r,e)}castAllFirstContacts(t,e,i){let r=new Map,s=new U.Ray({mode:U.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.ƀbm(n,e)):n.fraction===a.fraction&&a.isExternal()&&r.set(n.body,this.ƀbm(n,e));},"callback")});return t.p2World.raycast(new U.RaycastResult,s),Array.from(r.values())}ƀbm(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}}};Nt=Ko([d()],Nt);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},lt=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);}};lt=Zo([d()],lt);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},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.ƀbn(r,t.length))}ƀbn(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:Vector.fromTo(s,t.explosionCenter).normalize(),fraction:0,ratioOfHits:i,raycastResults:r,getHitPosition:h(()=>t.explosionCenter,"getHitPosition"),getHitDistance:h(()=>0,"getHitDistance")}}}};jt=Qo([d()],jt);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)},on=15,$e=class{static{h(this,"ElipticExplosionService");}constructor(t,e,i,r){this.ƀic=t,this.ƀjw=e,this.ƀib=i,this.ƀff=r;}createElipticExplosion(t,e,i,r,s,n,a){let l=v.getInstanceByIDOrFail(t),c=this.ƀcc(e,i,r,s,a?.hitOnlyClosest===true,l),p=this.ƀib.toExplosionHits(c,false);return this.ƀq(p,n),a?.testLayerID&&this.ƀjw.createElipticExplosionDebugVisual(l,a.testLayerID,c,e,i,r,a.debugRayDuration),p.map(m=>{let{p2Body:g,...R}=m;return R})}ƀcc(t,e,i,r,s,n){let a=[],l=e.vector,c=e.add(Radian.get90).vector,p=c.normalize(i.x);a.push(new Line(t,t.add(p))),a.push(new Line(t,t.add(p.multiplyNumber(-1))));let m=l.normalize(i.y);a.push(new Line(t,t.add(m))),a.push(new Line(t,t.add(m.multiplyNumber(-1))));let g=Math.round(i.y/on),R=i.y/(g*2+1)*2,bt=l.normalize(R),oe=i.x,hr=Math.pow(i.y,2);return ArrayHelper.createIntegerArray(g).forEach(pt=>{let St=R*(pt+1),Ti=bt.multiplyNumber(pt+1),ne=c.normalize(this.ƀem(oe,hr,St)),ae=t.add(Ti);a.push(new Line(ae,ae.add(ne))),a.push(new Line(ae,ae.add(ne.multiplyNumber(-1))));let he=t.add(Ti.multiplyNumber(-1));a.push(new Line(he,he.add(ne))),a.push(new Line(he,he.add(ne.multiplyNumber(-1))));}),a.map(pt=>{if(s){let St=this.ƀic.castClosest(n,pt,r);return {line:pt,hits:St?[St]:[]}}else {let St=this.ƀic.castAllFirstContacts(n,pt,r);return {line:pt,hits:St}}})}ƀem(t,e,i){return Math.sqrt(1-Math.pow(i,2)/e)*t}ƀq(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.ƀff.applyImpulse(r.body,r.hitPosition(),s,n);});});}};$e=tn([d(),en("design:paramtypes",[Nt,Q,jt,lt])],$e);var nn=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},an=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.ƀic=t,this.ƀjw=e,this.ƀib=i,this.ƀff=r;}createExplosion(t,e,i,r,s,n){let a=v.getInstanceByIDOrFail(t),l=this.ƀej(i),c=this.ƀcc(e,i,r,l,n?.hitOnlyClosest===true,a),p=this.ƀib.toExplosionHits(c);return this.ƀq(e,i,s,l,p),n?.testLayerID&&this.ƀjw.createExplosionDebugVisual(a,n.testLayerID,c,e,i,n.debugRayDuration),p}ƀcc(t,e,i,r,s,n){let a=new Radian(PI_360/r),l=new Vector(0,-e),c=a.vector;return ArrayHelper.createEmptyArray(r).map(()=>{let p=t.add(l);return l=l.rotate(c),new Line(t,p)}).map(p=>{if(s){let m=this.ƀic.castClosest(n,p,i);return {line:p,hits:m?[m]:[]}}else {let m=this.ƀic.castAllFirstContacts(n,p,i);return {line:p,hits:m}}})}ƀq(t,e,i,r,s){s.forEach(n=>{if(n.isExternal)n.raycastResults.forEach(a=>{let l=i*(1-a.fraction);this.ƀff.applyImpulse(a.body,a.hitPosition(),a.line.fromTo,l);});else {let a=Vector.fromTo(t,f.arrayToVector(n.p2Body.position)),l=a.length/e,c=i*r*l/2;this.ƀff.applyImpulse(n.p2Body,n.getHitPosition(),a,c);}});}ƀej(t){return t>100?Math.floor(t*.3):Math.floor(t*.26+4)}};ke=nn([d(),an("design:paramtypes",[Nt,Q,jt,lt])],ke);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},Ht=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)}};Ht=dn([d()],Ht);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},fn=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},Si=class{static{h(this,"PhysicsController");}constructor(t,e,i,r,s,n,a,l){this.ƀhs=t,this.ƀhh=e,this.ƀjw=i,this.ƀdb=r,this.ƀcu=s,this.ƀew=n,this.ƀhr=a,this.ƀff=l;}createPhysicsWorld(t){return this.ƀhs.createPhysicsWorld(t)}getMapSize(t){return this.ƀhr.getMapSize(t)}setPaused(t,e){this.ƀhs.setPaused(t,e);}hitTest(t,e){let i=b.getPhysicsInstanceOrFail(t);return this.ƀew.hitTest(i.p2Body,e)}findPath(t,e,i,r,s){return this.ƀhh.findPathAStar(t,e,i,r,{neighborType:s})}findPathDirection(t,e,i,r){return this.ƀhh.findPathDirection(t,e,i,r)}applyImpulse(t,e,i,r){let s=b.getPhysicsInstanceOrFail(t);this.ƀff.applyImpulse(s.p2Body,e,i,r);}createExplosion(t,e,i,r,s,n){return this.ƀdb.createExplosion(t,e,i,r,s,n)}createElipticExplosion(t,e,i,r,s,n,a){return this.ƀcu.createElipticExplosion(t,e,i,r,s,n,a)}printPathfindingTestGrid(t,e,i,r,s,n){this.ƀjw.printPathfindingTestGrid(t,e,i,r,s,n);}};Si=un([q({controllerLink:H}),fn("design:paramtypes",[Vt,Ft,Q,ke,$e,Ne,Ht,lt])],Si);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},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 it.Point:return this.ƀbt(n,void 0,i,r,e.shapeDefinition.group,s);case it.Circle:return this.ƀbt(n,e.shapeDefinition.shapeData,i,r,e.shapeDefinition.group,s);case it.Polygon:return this.ƀcb(n,e.shapeDefinition.shapeData,i,r,e.shapeDefinition.group,s);case it.Rectangle:return this.ƀcd(n,e.shapeDefinition.shapeData,i,r,e.shapeDefinition.group,s);default:{e.shapeDefinition.shapeType;throw new Error(`Unexpected case! "${e.shapeDefinition.shapeType}"`)}}}ƀbt(t,e,i,r,s,n){let a=new U.Circle({collisionGroup:t.physicsBodyGroupToP2Group.get(s),collisionMask:t.physicsBodyGroupToP2Mask.get(s),radius:e});a.material=i;let l=new U.Body({type:n==="dynamic"?U.Body.DYNAMIC:U.Body.STATIC,mass:r.density,damping:r.velocityDrag,angularDamping:r.rotationalDrag});return l.addShape(a),l}ƀcb(t,e,i,r,s,n){let a=t.physicsBodyGroupToP2Group.get(s),l=t.physicsBodyGroupToP2Mask.get(s),c=e.map(g=>new U.Convex({vertices:g.map(R=>[R.x,R.y]),collisionGroup:a,collisionMask:l})).map(g=>(g.material=i,g)),p=c.reduce((g,R)=>g+R.area,0),m=new U.Body({type:n==="dynamic"?U.Body.DYNAMIC:U.Body.STATIC,mass:p,damping:r.velocityDrag,angularDamping:r.rotationalDrag});return c.forEach(g=>m.addShape(g)),m.setDensity(r.density),m}ƀcd(t,e,i,r,s,n){let a=new U.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.Body({type:n==="dynamic"?U.Body.DYNAMIC:U.Body.STATIC,mass:l,damping:r.velocityDrag,angularDamping:r.rotationalDrag});return c.addShape(a),c.setDensity(r.density),c}};ze=mn([d()],ze);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},yn=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},Pi=class{static{h(this,"PhysicsInternalController");}constructor(t,e,i,r,s){this.ƀhs=t,this.ƀhq=e,this.ƀjd=i,this.ƀhr=r,this.ƀhl=s;}createBody(t,e,i,r,s){return this.ƀjd.createBody(t,e,i,r,s)}getMaterial(t,e){return this.ƀhq.getMaterial(t,e)}getMaterialDefinition(t,e){return this.ƀhq.getMaterialDefinition(t,e)}getGroupConstant(t,e){return this.ƀhl.getGroupConstant(t,e)}getMaskConstant(t,e){return this.ƀhl.getMaskConstant(t,e)}addBody(t,e,i,r,s){return this.ƀhs.addBody(t,e,i,r,s)}removeBody(t,e){this.ƀhs.removeBody(t,e);}subscribeToPhysicsStep(t,e){return this.ƀhr.subscribeToPhysicsStep(t,e)}};Pi=gn([q({controllerLink:X}),yn("design:paramtypes",[Vt,_t,ze,Ht,K])],Pi);export{Oi as AnimationFlicker,z as AnimationInterpolationFunctions,S as Animations,C as AnimationsCompletionHandlingType,D as Animator,ot as BORDER_MATERIAL_NAME,F as BardLegendsHardReset,Tt as BlendMode,Qt as Camera,Rt as CameraGateway,Yt as ClosestAvailableSpaceHelper,u as Container,Pt as ContainerEventType,q as ControllerDecorator,$ as ControllerLink,Xe as Cursor,O as DEFAULT_SHADER_RESOLUTION,ei as DeltaTime,ci as DisplayObjectArray,k as Entity,ut as EntityDecorator,Gi as FadeInContent,ve as FadeInStateAnimation,st as FocusingAnimation,w as Game,E as Graphics,se as ImmovablePhysicsEntity,mi as KeyboardService,di as MenuEntity,ee as MenuUI,ui as MenuView,re as MouseService,gi as MouseTargetFocusService,xi as MovableEntity,vi as MovablePhysicsEntity,Xt as PathFinder,b as PhysicsEntity,bi as PhysicsGateway,it as PhysicsShapeType,ai as Placeholder,Ut as PositionConversionHelper,wi as ROTATIONAL_SPEED_LIMIT,_ as ReAnimateHandlingType,hi as RichText,yi as SPEED_LIMIT,le as Scene,br as SceneDecorator,fi as ScrollAreaUI,tt as ScrollDirection,yt as ScrollMaskUI,T as Service,d as ServiceDecorator,ft as SingletonEntity,Hi as SlideInContent,ti as SlideInContentByIndex,Te as SlideStateAnimation,et as SlideStateAnimationState,Y as Sprite,xe as StateAnimation,te as Text,li as UpdatableContainer,y as UpdateCycle,Kt as VectorFieldPathFinder,xt as VectorSet,dt as View,Ye as ViewDecorator};