bard-legends-framework 1.5.2 → 1.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.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 lr=Object.defineProperty;var h=(o,t)=>lr(o,"name",{value:t,configurable:true});var F=class{static{h(this,"BardLegendsHardReset");}static{this.ƀev=new Action;}static{this.onHardReset=this.ƀev.notifier;}static hardReset(){ActionLib.hardReset(),this.ƀev.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.ƀiy=new Map;}static get(t){let e=this.ƀiy.get(t);if(!e){if(!t.$meta)throw new Error(`Service: service class is not decorated by @ServiceDecorator(), class: "${t.name}"`);let i=this.ƀil(t.$meta.paramtypes);e=new t(...i),this.ƀiy.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 ƀil(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.ƀiy=new Map;}).attachToRoot();var $=class{static{h(this,"ControllerLink");}constructor(){this.ƀbl=[],this.ƀij=[];}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.ƀij.includes(e))throw new Error(`ServiceLink: the function is already registered, function name: "${e}"`);this.ƀij.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.ƀil(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.ƀiq=new Action;}static{this.sceneUpdateAction=this.ƀiq.notifier;}static{this.ƀf=new Action;}static{this.afterSceneUpdateAction=this.ƀf.notifier;}static{this.ƀkd=0;}static{this.ƀkl=void 0;}static wait(t){let e=this.ƀkd+t;return SingleEvent.create(i=>{let r=o.beforeSceneUpdateAction.subscribe(s=>{s.time>=e&&i();}).attachToRoot();return ()=>r.destroy()})}static registerUpdateModifier(t){if(!this.ƀkl)this.ƀkl=t;else throw new Error("UpdateCycle: There can only one update modifier!")}static cleanUpdateModifier(){this.ƀkl=void 0;}static triggerUpdateTick(t){this.ƀkl&&(t=this.ƀkl(this.ƀkd,t)),this.ƀkd+=t,this.ƀfw=t,t>0&&(o.ƀab.trigger({time:this.ƀkd,delta:t}),o.ƀiq.trigger({time:this.ƀkd,delta:t}),o.ƀf.trigger({time:this.ƀkd,delta:t}));}static get lastDelta(){return this.ƀfw}static{this.ƀfw=0;}};F.onHardReset.subscribe(()=>{y.ƀab.clear(),y.ƀiq.clear(),y.ƀf.clear(),y.ƀkl=void 0,y.ƀkd=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.ƀku=new Map;}static registerView(t,e){o.ƀku.has(e)||o.ƀku.set(e,[]);let i=o.ƀku.get(e);i&&i.push(t),A.getEntities(e).forEach(s=>{this.ƀcg(s,t);});}static ƀcg(t,e){try{let i=T.ƀil(e.$meta.paramtypes.slice(1));o.entityID=t.id;let r=new e(t,...i);t.destroyed?r.destroy():t.ƀkt.ƀkv.push(r);}catch(i){console.error(i);}}constructor(t){this.ƀcx=t,this.ƀkv=[];}createViews(){if(!this.ƀcx.destroyed){let t=o.ƀku.get(this.ƀcx.constructor);t&&t.forEach(e=>{o.ƀcg(this.ƀcx,e);});}}updateViews(t,e){for(let i=0;i<this.ƀkv.length;i++){let r=this.ƀkv[i];r.destroyed||r.update(t,e);}}destroyViews(){this.ƀkv.forEach(t=>{t.destroy();});}};F.onHardReset.subscribe(()=>{rt.ƀku=new Map;}).attachToRoot();function ft(){return function(o){o.$meta={type:"entity"},A.registerEntityClass(o);}}h(ft,"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.ƀkt=new rt(this),A.registerEntity(this),y.sceneUpdateAction.subscribe(t=>{this.destroyed||(this.update(t.time,t.delta),this.ƀkt.updateViews(t.time,t.delta));}).attach(this);}destroy(){this.destroyed||(this.ƀkt.destroyViews(),A.unregisterEntity(this.constructor,this.id),super.destroy());}attach(t){return super.attach(t),this.ƀkt.createViews(),this}attachByID(t){return super.attachByID(t),this.ƀkt.createViews(),this}attachToRoot(){return super.attachToRoot(),this.ƀkt.createViews(),this}update(t,e){}};var ut=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 ƀki(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.ƀki(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.ƀfp=new Variable(false);}static{this.isTransitioning=this.ƀfp.notifier;}static{this.ƀb=new Variable(void 0);}static{this.activeScene=this.ƀb.notifier;}static getActiveSceneOrFail(){if(!o.ƀb.value)throw new Error("Scene: getActiveSceneOrFail is called when there is no active scene!");return o.ƀb.value}static cancelActiveScene(){return o.ƀb.value?o.ƀb.value.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.ƀfp.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.ƀfp.value=true;let i=T.ƀil(this.$meta.paramtypes),r=new this(...i).attachToRoot();return o.ƀb.set(r),r.init(e).map(()=>(o.ƀfp.value=false,r)).chainToRoot()}constructor(){super(),this.ƀgt=new SingleAction,this.onClose=this.ƀgt.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.ƀfp.value)throw new Error("Scene: you cannot close a scene while a scene is transitioning!");o.ƀfp.value=true;let e=t[0];return this.animateAndClose().map(()=>(this.ƀgt.resolve(e),e)).chainToRoot()}animateAndClose(){return this.prepareToClose().tap(()=>{super.destroy(),o.ƀb.set(void 0),o.ƀfp.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 St;(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";})(St||(St={}));var Xe;(function(o){o.Default="default",o.Pointer="pointer";})(Xe||(Xe={}));var pe=class extends IDAttachable{static{h(this,"ContainerAttributes");}constructor(){super(),this.ƀgn=false,this.ƀdd=false,this.ƀio=1,this.ƀv=1,this.ƀhv=new L.Container;}get size(){return this.getSize()}set size(t){this.setSize(t);}getSize(){return new Vector(this.ƀhv.width,this.ƀhv.height)}setSize(t){return this.ƀhv.width=t.x,this.ƀhv.height=t.y,this}setPosition(t,e){if(e?.holdFrom){let i=this.ƀhv.getLocalBounds(),r=new Vector(this.ƀhv.scale.x,this.ƀhv.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.ƀhv.x,this.ƀhv.y)}set position(t){this.ƀhv.position=t;}get x(){return this.ƀhv.x}set x(t){this.ƀhv.x=t;}get y(){return this.ƀhv.y}set y(t){this.ƀhv.y=t;}on(t){return Sequence.create(e=>{let i=h(r=>{if(t===St.Wheel){let n=r.deltaY;e({deltaY:n});}else e(void 0);},"handle");return this.ƀhv.on(t,i),()=>this.ƀhv.off(t,i)}).notIdle()}setRotation(t){return this.rotation=t,this}get rotation(){return new Radian(this.ƀhv.rotation)}set rotation(t){this.ƀhv.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.ƀhv.zIndex}set zIndex(t){this.ƀhv.zIndex=t;}setSkewX(t){return this.skewX=t,this}get skewX(){return new Radian(this.ƀhv.skew.x)}set skewX(t){this.ƀhv.skew.x=t.value;}setSkewY(t){return this.skewY=t,this}get skewY(){return new Radian(this.ƀhv.skew.y)}set skewY(t){this.ƀhv.skew.y=t.value;}setSortableChildren(t){return this.sortableChildren=t,this}get sortableChildren(){return this.ƀhv.sortableChildren}set sortableChildren(t){this.ƀhv.sortableChildren=t;}setAlpha(t){return this.ƀhv.alpha=t,this}get alpha(){return this.ƀhv.alpha}set alpha(t){this.ƀhv.alpha=t;}setInteractive(t){return this.interactive=t,this}get interactive(){return this.ƀhv.interactive}set interactive(t){t?this.ƀhv.eventMode="dynamic":this.ƀhv.eventMode="none";}setCursor(t){return this.cursor=t,this}get cursor(){return this.ƀhv.cursor}set cursor(t){this.ƀhv.cursor=t;}getMask(){throw new Error("ContainerAttributes: mask is not available!")}setMask(t){return t?(this.ƀhv.addChild(t.ƀhv),this.ƀhv.mask=t.getMask(),this.ƀgg=t):(this.ƀgg&&this.ƀhv.removeChild(this.ƀgg.ƀhv),this.ƀhv.mask=null),this}hitTest(t){if(this.ƀhv.parent)if(this.ƀhv.hitArea){let e=this.ƀhv.toLocal(t);return this.ƀhv.hitArea.contains(e.x,e.y)}else return this.ƀhv.getBounds().contains(t.x,t.y);else return false}get boundingBox(){let t=this.ƀhv.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.ƀhf||(this.ƀhf=this.ƀhv.calculateBounds),this.ƀhv.calculateBounds=()=>this.ƀhv._bounds.clear()):this.ƀhf&&(this.ƀhv.calculateBounds=this.ƀhf),this}setMirror(t=false){return this.mirror=t,this}get mirror(){return this.ƀgn}set mirror(t){this.ƀgn=t,this.ƀkm();}setFlip(t=false){return this.flip=t,this}get flip(){return this.ƀdd}set flip(t){this.ƀdd=t,this.ƀkm();}setScale(t){return this.scale=t,this}get scale(){return this.ƀio}set scale(t){this.ƀio=t,this.ƀkm();}setAspectRatio(t){return this.aspectRatio=t,this}get aspectRatio(){return this.ƀv}set aspectRatio(t){this.ƀv=t,this.ƀkm();}ƀkm(){this.ƀhv.scale.set(this.ƀio,this.ƀio),this.ƀv<1?this.ƀhv.scale.x*=this.ƀv:this.ƀv>1&&(this.ƀhv.scale.y/=this.ƀv),this.ƀgn&&(this.ƀhv.scale.x*=-1),this.ƀdd&&(this.ƀhv.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 `
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 W from'p2';var nr=Object.defineProperty;var h=(o,t)=>nr(o,"name",{value:t,configurable:true});function K(){return class{static{h(this,"GatewayBase");}}}h(K,"Gateway");function bi(o,t){let e=o.prototype,i=Object.getPrototypeOf(t);for(let r of Reflect.ownKeys(i)){if(typeof r!="string"||r==="constructor")continue;let s=t[r];if(typeof s=="function"){if(Object.prototype.hasOwnProperty.call(e,r))throw new Error(`Gateway "${o.name}": method "${r}" is already registered by another controller.`);e[r]=s.bind(t);}}}h(bi,"bindControllerToGateway");var _=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.ƀed(o);o.$meta={paramtypes:t,type:"service"};}}h(d,"ServiceDecorator");var T=class{static{h(this,"Service");}static{this.ƀiw=new Map;}static get(t){let e=this.ƀiw.get(t);if(!e){if(!t.$meta)throw new Error(`Service: service class is not decorated by @ServiceDecorator(), class: "${t.name}"`);let i=this.ƀij(t.$meta.paramtypes);e=new t(...i),this.ƀiw.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 ƀij(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}"`)})}};_.onHardReset.subscribe(()=>{T.ƀiw=new Map;}).attachToRoot();function Z(o){return function(t){let e=T.ƀed(t);if(e.some(i=>!i))console.error(`Circular dependency: ${t.name}`);else {let i=T.ƀij(e);i.some(s=>s===void 0)&&console.error(i,e,t.name);let r=new t(...i);bi(o,r);}t.$meta={type:"controller"};}}h(Z,"ControllerDecorator");var y=class o{static{h(this,"UpdateCycle");}static{this.ƀab=new Action;}static{this.beforeSceneUpdateAction=this.ƀab.notifier;}static{this.ƀio=new Action;}static{this.sceneUpdateAction=this.ƀio.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.ƀio.trigger({time:this.ƀkb,delta:t}),o.ƀf.trigger({time:this.ƀkb,delta:t}));}static get lastDelta(){return this.ƀfv}static{this.ƀfv=0;}};_.onHardReset.subscribe(()=>{y.ƀab.clear(),y.ƀio.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())}};_.onHardReset.subscribe(()=>{A.ƀau.clear();}).attachToRoot();function ke(o){return function(t){t.$meta={paramtypes:T.ƀed(t),viewInstances:new Map,entity:o.entity,type:"view"},et.registerView(t,o.entity);}}h(ke,"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=et.entityID,this.ƀek().set(this.ƀcx,this);}destroy(){this.destroyed||(super.destroy(),this.ƀek().delete(this.ƀcx));}update(t,e){}ƀek(){return this.constructor.$meta.viewInstances}};var et=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.ƀcf(s,t);});}static ƀcf(t,e){try{let i=T.ƀij(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.ƀcw=t,this.ƀkt=[];}createViews(){if(!this.ƀcw.destroyed){let t=o.ƀks.get(this.ƀcw.constructor);t&&t.forEach(e=>{o.ƀcf(this.ƀcw,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();});}};_.onHardReset.subscribe(()=>{et.ƀks=new Map;}).attachToRoot();function ft(){return function(o){o.$meta={type:"entity"},A.registerEntityClass(o);}}h(ft,"EntityDecorator");var U=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 et(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 ut=class o extends U{static{h(this,"SingletonEntity");}static{this.ƀcg=new WeakMap;}static ƀdp(t){let e=o.ƀcg.get(t);return e||(e=new SingleAction,o.ƀcg.set(t,e)),e}static ƀkg(t){o.ƀcg.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.ƀkg(this.constructor)).attachToRoot(),o.ƀdp(this.constructor).resolve(this);}};function wr(){return function(o){return o.$meta={paramtypes:T.ƀed(o),type:"scene"},o}}h(wr,"SceneDecorator");var ae=class o extends IDAttachable{static{h(this,"Scene");}static{this.ƀfo=new Variable(false);}static{this.isTransitioning=this.ƀfo.notifier;}static{this.ƀb=new Variable(void 0);}static{this.activeScene=this.ƀb.notifier;}static getActiveSceneOrFail(){if(!o.ƀb.value)throw new Error("Scene: getActiveSceneOrFail is called when there is no active scene!");return o.ƀb.value}static cancelActiveScene(){return o.ƀb.value?o.ƀb.value.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.ƀij(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')}};_.onHardReset.subscribe(()=>{ae.ƀ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 ze;(function(o){o.Default="default",o.Pointer="pointer";})(ze||(ze={}));var le=class extends IDAttachable{static{h(this,"ContainerAttributes");}constructor(){super(),this.ƀgm=false,this.ƀdc=false,this.ƀim=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)}).notIdle()}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.ƀdc}set flip(t){this.ƀdc=t,this.ƀkk();}setScale(t){return this.scale=t,this}get scale(){return this.ƀim}set scale(t){this.ƀim=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.ƀim,this.ƀim),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.ƀdc&&(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 ce=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.ƀbp(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.ƀbp(e)}}static ƀbp(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 Ti=class Je extends L.Filter{static{h(this,"BlurFilterPass");}static ƀej(){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 ƀds(t,e){let i=`
13
+ `}static ƀdr(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(Ke.ƀek(),Ke.ƀds(de.getValuesForLinearSamplingGauss(t),e)),this.ƀey=e,this.resolution=O;}apply(t,e,i,r){this.uniforms.pixelSize=this.ƀey?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.ƀjt=t,this.resolution=O,this.ƀjt=t.multiplyNumber(O).floor(),this.ƀjt.x<0||this.ƀjt.y<0)throw new Error("BlurFilterLinearSampling: Strength * Resolution must be greater than 0");if(this.ƀjt.x>100||this.ƀjt.y>100)throw new Error("BlurFilterLinearSampling: Strength * Resolution cannot be higher than 100");this.ƀfa=new Ci(this.ƀjt.x,true),this.ƀkr=new Ci(this.ƀjt.y,false),this.padding=Math.max(this.ƀjt.x,this.ƀjt.y);}apply(t,e,i,r){let s=t.getFilterTexture();this.ƀkr.apply(t,e,s,L.CLEAR_MODES.CLEAR),this.ƀfa.apply(t,s,i,r),t.returnFilterTexture(s);}get blendMode(){return this.ƀfa.blendMode}set blendMode(t){this.ƀfa.blendMode=t,this.ƀkr.blendMode=t;}};var ue=class{static{h(this,"Filters");}get red(){return this.ƀie}set red(t){this.ƀie=t,this.ƀif();}get green(){return this.ƀeo}set green(t){this.ƀeo=t,this.ƀif();}get blue(){return this.ƀae}set blue(t){this.ƀae=t,this.ƀif();}get brightness(){return this.ƀaj}set brightness(t){this.ƀaj=t,this.ƀif();}get contrast(){return this.ƀbk}set contrast(t){this.ƀbk=t,this.ƀif();}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.ƀgx()));}constructor(t){this.ƀbg=t,this.ƀie=1,this.ƀeo=1,this.ƀae=1,this.ƀaj=1,this.ƀbk=1,this.ƀgx();}removeColorFilter(){this.ƀaz?.destroy(),this.ƀaz=void 0,this.ƀgx();}ƀif(){this.ƀie===1&&this.ƀeo===1&&this.ƀae===1&&this.ƀaj===1&&this.ƀbk===1?this.ƀaz&&(this.ƀaz.destroy(),this.ƀaz=void 0,this.ƀgx()):(this.ƀaz||(this.ƀaz=new L.ColorMatrixFilter,this.ƀaz.resolution=O,this.ƀgx()),this.ƀaz.matrix=[this.ƀie*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]);}ƀgx(){let t=[];this.ƀag&&t.push(this.ƀag),this.ƀaz&&t.push(this.ƀaz),this.ƀbg.filters=t;}};var f=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 ue(this.ƀhv);}destroy(){this.destroyed||(super.destroy(),o.allContainers.delete(this.id),!this.ƀhv.destroyed&&this.ƀhv.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.ƀhv.addChildAt(this.ƀhv,0):i.addChildTo.ƀhv.addChild(this.ƀhv),r.cropOverflowingParts)if(i)this.ƀhv.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.ƀim=new Map;}static{this.ƀp=0;}static getAsset(t){let e=this.ƀim.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.ƀim.set(e,t),e}static destroyAsset(t){let e=this.ƀim.get(t);e&&(e.destroy(true),this.ƀim.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.ƀim.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.ƀjg=t.map(r=>new L.Polygon(r.map(s=>new L.Point(s.x,s.y))));}contains(t,e){return this.ƀjg.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.ƀke=new Array(10).fill(0),Random.integerBetween(0,9),this.ƀke[Random.integerBetween(0,9)]=Math.random(),Math.random()<.3&&(Random.integerBetween(0,9),this.ƀke[Random.integerBetween(0,9)]=Math.random()),Math.random()<.2&&(Random.integerBetween(0,9),this.ƀke[Random.integerBetween(0,9)]=Math.random());}multiplierFunction(t){let e=Math.floor(t*10);return this.ƀke[e]}},P=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.ƀhc!==void 0}get target(){return this.ƀjv}get value(){return this.ƀkn||(this.ƀkn=new Variable(this.ƀjv)),this.ƀkn.notifier}constructor(t,e,i){this.ƀfq=false,this.ƀjh=false,this.ƀjv=t,this.ƀhe={duration:200,animation:P.lineer,reAnimateHandling:_.ThrowError,completionHandling:C.StayInCurrentState,...i},this.ƀl=Comparator.isArray(e)?e:[e],this.ƀgd(t,this.ƀl);}animate(t,e){let i={...this.ƀhe,...e},r=this.ƀhc;if(this.ƀhc)switch(i.reAnimateHandling){case _.ThrowError:throw new Error("Animator: new animation triggered while another is not complete yet.");case _.IgnoreNewAnimation:return SingleEvent.instant().notIdle();case _.CompletePrevious:this.ƀja(i.completionHandling,this.ƀhc.ƀia,true);break;default:{throw new Error(`Animator: unknown re-animate handling type: "${i.reAnimateHandling}"`)}}return SingleEvent.create(n=>{this.ƀfq&&(this.ƀjh=true);let a=this.ƀl.reduce((c,p)=>(c[p]={ƀjp:this.ƀjv[p],ƀjx:t[p]},c),{}),l={ƀcs:i.duration,ƀct:0,ƀia:a,ƀbe:i.completionHandling,ƀm:i.animation,ƀbd:n};if(l.ƀbe!==C.Loop&&this.ƀfm(l)){this.ƀhc=void 0,n(),r?.ƀbd(),this.ƀhc||(this.ƀkk?.destroy(),this.ƀkk=void 0);return}else l.ƀm.start();return this.ƀhc=l,this.ƀcw(),r?.ƀbd(),()=>{this.ƀhc===l&&(this.ƀjv instanceof Attachable&&this.ƀjv.destroyed||this.ƀja(l.ƀbe,l.ƀia,true),this.ƀhc=void 0,this.ƀkk?.destroy(),this.ƀkk=void 0);}}).notIdle()}set(t){let e=false;for(let i=0;i<this.ƀl.length;i++){let r=this.ƀl[i];this.ƀjv[r]!==t[r]&&(e=true,this.ƀjv[r]=t[r]);}e&&this.ƀkn?.set(this.ƀjv),this.ƀhc?.ƀbd();}completeAnimation(t){if(this.ƀhc){t=t??this.ƀhc.ƀbe,this.ƀja(t,this.ƀhc.ƀia,true);let e=this.ƀhc.ƀbd;this.ƀhc=void 0,e();}}ƀcw(){this.ƀkk||(this.ƀkk=y.beforeSceneUpdateAction.subscribe(t=>{this.ƀfq=true;try{let e=this.ƀhc;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.ƀja(e.ƀbe,e.ƀia,!1),this.ƀhc=void 0,e.ƀbd(),this.ƀhc||(this.ƀkk?.destroy(),this.ƀkk=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.ƀia[a],p=(l.ƀjx-l.ƀjp)*r+l.ƀjp;p!==this.ƀjv[a]&&(s=!0,this.ƀjv[a]=p);}s&&this.ƀkn?.set(this.ƀjv);}}finally{this.ƀfq=false,this.ƀjh&&(this.ƀjh=false,this.ƀkk?.destroy(),this.ƀkk=void 0,this.ƀcw());}}).attachToRoot());}ƀfm(t){for(let e=0;e<this.ƀl.length;e++){let i=this.ƀl[e];if(this.ƀjv[i]!==t.ƀia[i].ƀjx)return false}return true}ƀja(t,e,i){switch(t){case C.ReturnToOriginal:this.ƀin(e);break;case C.StayInCurrentState:i||this.ƀft(e);break;case C.JumpToEnd:this.ƀft(e);break;case C.Loop:this.ƀin(e);break;default:{throw new Error(`Animator: unknown completion handling type: "${t}"`)}}}ƀin(t){let e=false;for(let i=0;i<this.ƀl.length;i++){let r=this.ƀl[i];this.ƀjv[r]!==t[r].ƀjp&&(e=true,this.ƀjv[r]=t[r].ƀjp);}e&&this.ƀkn?.set(this.ƀjv);}ƀft(t){let e=false;for(let i=0;i<this.ƀl.length;i++){let r=this.ƀl[i];this.ƀjv[r]!==t[r].ƀjx&&(e=true,this.ƀjv[r]=t[r].ƀjx);}e&&this.ƀkn?.set(this.ƀjv);}ƀgd(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.ƀjq,nextState:this.ƀgr,queuedState:this.ƀib,animationState:this.ƀn}}constructor(t){super(),this.ƀj={value:0},this.ƀn=I.Idle,this.ƀgz=new Action,this.ƀhb=new Action,this.ƀhe={duration:500,animation:P.lineer,...t},this.ƀo=new D(this.ƀj,"value",{duration:this.ƀhe.duration,animation:this.ƀhe.animation,reAnimateHandling:_.CompletePrevious,completionHandling:C.StayInCurrentState}),this.ƀo.value.subscribe(()=>{this.ƀj.value!==1&&this.ƀj.value!==0&&this.ƀhb.trigger(this.ƀj.value);}).attach(this);}setState(t,e){if(this.ƀjq===void 0)this.ƀjq=t,this.ƀgz.trigger({state:this.ƀjq,nextState:this.ƀgr}),this.ƀhb.trigger(this.ƀj.value);else if(e?.instant)this.ƀo.completeAnimation(),this.ƀn=I.Idle,this.ƀjq=t,this.ƀgr=void 0,this.ƀj.value=0,this.ƀgz.trigger({state:this.ƀjq,nextState:this.ƀgr}),this.ƀhb.trigger(this.ƀj.value);else switch(this.ƀn){case I.Idle:t!==this.ƀjq&&(this.ƀn=I.Transitioning,this.ƀgr=t,this.ƀj.value=0,this.ƀgz.trigger({state:this.ƀjq,nextState:this.ƀgr}),this.ƀhb.trigger(this.ƀj.value),this.ƀo.animate({value:1}).tap(()=>this.ƀgv()).attach(this));break;case I.Transitioning:t!==this.ƀgr&&(t===this.ƀjq?(this.ƀn=I.Reverting,this.ƀo.animate({value:0},{duration:this.ƀj.value*this.ƀhe.duration}).tap(()=>this.ƀgv()).attach(this)):this.ƀib=t);break;case I.Reverting:t!==this.ƀjq&&(t===this.ƀgr?(this.ƀn=I.Transitioning,this.ƀo.animate({value:1},{duration:(1-this.ƀj.value)*this.ƀhe.duration}).tap(()=>this.ƀgv()).attach(this)):this.ƀib=t);break;default:{this.ƀn;throw new Error(`Unexpected case! "${this.ƀn}"`)}}}ƀgv(){switch(this.ƀn){case I.Transitioning:this.ƀj.value===1&&(this.ƀj.value=0,this.ƀib!==void 0?(this.ƀn=I.Transitioning,this.ƀjq=this.ƀgr,this.ƀgr=this.ƀib,this.ƀib=void 0,this.ƀgz.trigger({state:this.ƀjq,nextState:this.ƀgr}),this.ƀo.animate({value:1}).tap(()=>this.ƀgv()).attach(this)):(this.ƀn=I.Idle,this.ƀjq=this.ƀgr,this.ƀgr=void 0,this.ƀgz.trigger({state:this.ƀjq,nextState:this.ƀgr})),this.ƀhb.trigger(this.ƀj.value));break;case I.Reverting:if(this.ƀjq===void 0)throw new Error("StateAnimation: state must be defined when reverting!");this.ƀj.value===0&&(this.ƀib!==void 0?(this.ƀn=I.Transitioning,this.ƀgr=this.ƀib,this.ƀib=void 0,this.ƀj.value=0,this.ƀgz.trigger({state:this.ƀjq,nextState:this.ƀgr}),this.ƀo.animate({value:1}).tap(()=>this.ƀgv()).attach(this)):(this.ƀn=I.Idle,this.ƀgr=void 0,this.ƀj.value=0,this.ƀgz.trigger({state:this.ƀjq,nextState:this.ƀgr})),this.ƀhb.trigger(this.ƀj.value));break;case I.Idle:break;default:{this.ƀn;throw new Error(`Unexpected case! "${this.ƀn}"`)}}}onStateChange(t){return this.ƀgz.subscribe(e=>t(e.state,e.nextState)).attach(this),this}onValueChange(t){return this.ƀhb.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.ƀjq,queuedState:this.ƀib,animationState:this.ƀn}}constructor(t){super(),this.ƀj={value:0},this.ƀn=x.Hidden,this.ƀgz=new Action,this.ƀhb=new Action,this.ƀhe={duration:500,animation:P.lineer,...t},this.ƀj.value=0,this.ƀo=new D(this.ƀj,"value",{duration:this.ƀhe.duration,animation:this.ƀhe.animation,reAnimateHandling:_.CompletePrevious,completionHandling:C.StayInCurrentState}),this.ƀo.value.subscribe(()=>{this.ƀj.value!==1&&this.ƀj.value!==0&&this.ƀhb.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.ƀib=void 0;let i=t!==void 0?1:0,r=this.ƀjq!==t;r&&(this.ƀjq=t,this.ƀgz.trigger(this.ƀjq)),(r||this.ƀj.value!==i)&&(this.ƀj.value=i,this.ƀhb.trigger(this.ƀj.value));}else switch(this.ƀn){case x.Hidden:t!==void 0&&(this.ƀn=x.Appearing,this.ƀib=void 0,this.ƀjq=t,this.ƀgz.trigger(this.ƀjq),this.ƀo.animate({value:1}).tap(()=>this.ƀgv()).attach(this));break;case x.Visible:t===void 0?(this.ƀn=x.Disappearing,this.ƀib=void 0,this.ƀo.animate({value:0}).tap(()=>this.ƀgv()).attach(this)):t!==this.ƀjq&&(this.ƀn=x.DisappearToChange,this.ƀib=t,this.ƀo.animate({value:0}).tap(()=>this.ƀgv()).attach(this));break;case x.Appearing:t===void 0?(this.ƀn=x.Disappearing,this.ƀib=void 0,this.ƀo.animate({value:0},{duration:this.ƀj.value*this.ƀhe.duration}).tap(()=>this.ƀgv()).attach(this)):t!==this.ƀjq&&(this.ƀj.value>0?(this.ƀn=x.DisappearToChange,this.ƀib=t,this.ƀo.animate({value:0},{duration:this.ƀj.value*this.ƀhe.duration}).tap(()=>this.ƀgv()).attach(this)):(this.ƀib=void 0,this.ƀjq=t,this.ƀgz.trigger(this.ƀjq)));break;case x.Disappearing:t===this.ƀjq?(this.ƀn=x.Appearing,this.ƀo.animate({value:1},{duration:(1-this.ƀj.value)*this.ƀhe.duration}).tap(()=>this.ƀgv()).attach(this)):t!==void 0&&(this.ƀn=x.DisappearToChange,this.ƀib=t);break;case x.DisappearToChange:t===void 0?(this.ƀn=x.Disappearing,this.ƀib=void 0):t===this.ƀjq?(this.ƀn=x.Appearing,this.ƀib=void 0,this.ƀo.animate({value:1},{duration:(1-this.ƀj.value)*this.ƀhe.duration}).tap(()=>this.ƀgv()).attach(this)):t!==this.ƀib&&(this.ƀib=t);break;default:{this.ƀn;throw new Error(`Unexpected case! "${this.ƀn}"`)}}}ƀgv(){switch(this.ƀn){case x.Appearing:this.ƀj.value===1&&(this.ƀn=x.Visible,this.ƀhb.trigger(this.ƀj.value));break;case x.Disappearing:if(this.ƀib!==void 0)throw new Error("FadeInStateAnimation: Unexpected state, disappearing should not have a queued value");this.ƀj.value===0&&(this.ƀn=x.Hidden,this.ƀjq=void 0,this.ƀgz.trigger(this.ƀjq),this.ƀhb.trigger(this.ƀj.value));break;case x.DisappearToChange:if(this.ƀib===void 0)throw new Error("FadeInStateAnimation: Unexpected state, disappearToChange should always have a queued value");this.ƀj.value===0&&(this.ƀn=x.Appearing,this.ƀjq=this.ƀib,this.ƀib=void 0,this.ƀgz.trigger(this.ƀjq),this.ƀhb.trigger(this.ƀj.value),this.ƀo.animate({value:1}).tap(()=>this.ƀgv()).attach(this));break;case x.Hidden:case x.Visible:return;default:{this.ƀn;throw new Error(`Unexpected case! "${this.ƀn}"`)}}}onStateChange(t){return this.ƀgz.subscribe(e=>t(e)).attach(this),this}onValueChange(t){return this.ƀhb.subscribe(e=>t(e)).attach(this),this}};var Gi=class extends f{static{h(this,"FadeInContent");}constructor(t,e){super(),this.ƀbu=t;let i={duration:200,animation:P.easeInOut,...e};this.alpha=0,this.ƀjr=new ve(i).onStateChange(r=>{this.ƀbh?.destroy(),this.ƀbh=void 0,r!==void 0&&(this.ƀbh=new f().displayParent(this).attach(this),this.ƀbu({state:r,container:this.ƀbh}));}).onValueChange(r=>{this.alpha=r;}).attach(this);}setState(t,e){return this.ƀjr.setState(t,e),this}};var Pe=class o extends L.Filter{static{h(this,"ExpandWithColorFilter");}static ƀek(){return `
32
+ `,i}constructor(t,e){super(Je.ƀej(),Je.ƀdr(ce.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 Ti(this.ƀjr.x,true),this.ƀkp=new Ti(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 de=class{static{h(this,"Filters");}get red(){return this.ƀid}set red(t){this.ƀid=t,this.ƀie();}get green(){return this.ƀen}set green(t){this.ƀen=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.ƀen=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.ƀen===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.ƀen*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 f=class o extends le{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 de(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 D=class{static{h(this,"GameAssets");}static{this.ƀik=new Map;}static{this.ƀp=0;}static getAsset(t){let e=this.ƀik.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.ƀik.set(e,t),e}static destroyAsset(t){let e=this.ƀik.get(t);e&&(e.destroy(true),this.ƀik.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.ƀik.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 Ht=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))))}},ue=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 Or=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},it=class extends K(){static{h(this,"CameraGateway");}};it=Or([d()],it);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=class extends K(){static{h(this,"CameraViewGateway");}};gt=Dr([d()],gt);var Ri;(function(o){o.BackgroundScreen="backgroundScreen",o.Background="background",o.Main="main",o.Foreground="foreground",o.ForegroundScreen="foregroundScreen";})(Ri||(Ri={}));var rt;(function(o){o[o.Instant=1]="Instant",o[o.EaseInOut=2]="EaseInOut",o[o.EaseOut=3]="EaseOut";})(rt||(rt={}));var $=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}},Mr=class{static{h(this,"AnimationLineer");}start(){}multiplierFunction(t){return $.lineer(t)}},Br=class{static{h(this,"AnimationEaseIn");}start(){}multiplierFunction(t){return $.easeIn(t)}},Gr=class{static{h(this,"AnimationEaseOut");}start(){}multiplierFunction(t){return $.easeOut(t)}},_r=class{static{h(this,"AnimationEaseInOut");}start(){}multiplierFunction(t){return $.easeInOut(t)}},Fr=class{static{h(this,"AnimationEaseInOutCubic");}start(){}multiplierFunction(t){return $.easeInOutCubic(t)}},Vr=class{static{h(this,"AnimationBlink");}start(){}multiplierFunction(t){return $.blink(t)}},Ci=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 Mr;}static{this.easeIn=new Br;}static{this.easeOut=new Gr;}static{this.easeInOut=new _r;}static{this.easeInOutCubic=new Fr;}static{this.blink=new Vr;}};var F;(function(o){o[o.ThrowError=1]="ThrowError",o[o.IgnoreNewAnimation=2]="IgnoreNewAnimation",o[o.CompletePrevious=3]="CompletePrevious";})(F||(F={}));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 M=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.ƀ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:F.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 F.ThrowError:throw new Error("Animator: new animation triggered while another is not complete yet.");case F.IgnoreNewAnimation:return SingleEvent.instant().notIdle();case F.CompletePrevious:this.ƀiy(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={ƀcr:i.duration,ƀcs: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.ƀcv(),r?.ƀbd(),()=>{this.ƀhb===l&&(this.ƀjt instanceof Attachable&&this.ƀjt.destroyed||this.ƀiy(l.ƀbe,l.ƀhz,true),this.ƀhb=void 0,this.ƀki?.destroy(),this.ƀki=void 0);}}).notIdle()}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.ƀiy(t,this.ƀhb.ƀhz,true);let e=this.ƀhb.ƀbd;this.ƀhb=void 0,e();}}ƀcv(){this.ƀki||(this.ƀki=y.beforeSceneUpdateAction.subscribe(t=>{this.ƀfp=true;try{let e=this.ƀhb;if(!e)return;e.ƀcs+=t.delta;let i=e.ƀcs>=e.ƀcr;if(i)if(e.ƀbe===C.Loop)e.ƀcs%=e.ƀcr,e.ƀm.start(),i=!1;else {this.ƀiy(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.ƀcs/e.ƀcr),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.ƀcv());}}).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}ƀiy(t,e,i){switch(t){case C.ReturnToOriginal:this.ƀil(e);break;case C.StayInCurrentState:i||this.ƀfs(e);break;case C.JumpToEnd:this.ƀfs(e);break;case C.Loop:this.ƀil(e);break;default:{throw new Error(`Animator: unknown completion handling type: "${t}"`)}}}ƀil(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.ƀ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 ge=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 M(this.ƀj,"value",{duration:this.ƀhd.duration,animation:this.ƀhd.animation,reAnimateHandling:F.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 ye=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 M(this.ƀj,"value",{duration:this.ƀhd.duration,animation:this.ƀhd.animation,reAnimateHandling:F.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 Di=class extends f{static{h(this,"FadeInContent");}constructor(t,e){super(),this.ƀbt=t;let i={duration:200,animation:S.easeInOut,...e};this.alpha=0,this.ƀjp=new ye(i).onStateChange(r=>{this.ƀbh?.destroy(),this.ƀbh=void 0,r!==void 0&&(this.ƀbh=new f().displayParent(this).attach(this),this.ƀbt({state:r,container:this.ƀbh}));}).onValueChange(r=>{this.alpha=r;}).attach(this);}setState(t,e){return this.ƀjp.setState(t,e),this}};var xe=class o extends L.Filter{static{h(this,"ExpandWithColorFilter");}static ƀej(){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 ƀds(t){let e=`
44
+ `}static ƀdr(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.ƀ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 Se=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 Pe(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.ƀjb(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 Se({blurRadius:e,expand:i,color:r})];let n=w.instance.renderer.generateTexture(s);return n.id=M.insertAsset(n),s.destroy(),n}static ƀjb(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 f{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.ƀhv,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.ƀkc=1,!t)throw new Error("Sprite: spriteDefinition cannot be nullish!");this.ƀjl=t,this.pixiSprite=new L.Sprite(M.getAsset(t.id)),this.ƀhv.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.ƀgh?.destroy(),this.ƀai?.destroy(),this.ƀjl.destroyAssetOnDestroy&&(M.destroyAsset(this.ƀjl.id),this.ƀhw&&M.destroyAsset(this.ƀhw.texture.id)),this.ƀhw&&!this.ƀhw.destroyed&&this.ƀhw.destroy());}setTextureScale(t){return this.textureScale=t,this}get textureScale(){return this.ƀkc}set textureScale(t){this.ƀkc=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.ƀjl.boundingShapes&&!this.ƀhv.hitArea&&(this.ƀhv.hitArea=new ge(this.ƀjl.boundingShapes,this.size,Vector.fromVec2(this.ƀjl.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.ƀhw)return this.ƀhw.alpha;throw new Error("Sprite: getGlowFilterAlpha cannot be called before glow filter is added.")}set glowAlpha(t){if(this.ƀhw)this.ƀhw.alpha=t;else throw new Error("Sprite: setGlowFilterAlpha cannot be called before glow filter is added.")}getAlignmentVector(t){let e=Vector.fromVec2(this.ƀjl.anchor).to(t);return new Vector(this.size.x*e.x,this.size.y*e.y)}setGlowEffect(t){return this.ƀhw&&(this.ƀhw.destroy(),this.ƀhw=void 0),t&&(this.ƀhw=zt.createGlowSpriteFromSprite(this.pixiSprite,t,!this.ƀjl.destroyAssetOnDestroy),this.ƀhw.position.set(this.pixiSprite.x,this.pixiSprite.y),this.ƀhw.scale.set(this.pixiSprite.scale.x,this.pixiSprite.scale.y),this.ƀhv.addChild(this.ƀhw)),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.ƀgh){if(!this.ƀjl.boundingShapes)throw new Error("Sprite: cropOverflowingParts cannot be used without polygonDefinition!");this.ƀgh=this.ƀbs(),this.ƀgh.pixiSprite._maskRefCount=Number.POSITIVE_INFINITY,this.ƀgh.pixiSprite.renderable=false,this.ƀgh.displayParent(this);}return this.ƀgh}ƀbs(){if(!this.ƀjl.boundingShapes)throw new Error("Sprite: bounding shape cannot be created without polygonDefinition!");return E.createPolygon(this.ƀjl.boundingShapes,ColorHelper.white).toSprite().attach(this)}download(){let t=w.instance.renderer.extract.canvas(this.ƀhv);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 f{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 f;r===tt.Horizontal?this.ƀby(e,i,s):this.ƀcf(e,i,s),this.ƀgh=Y.createSnapshotSprite(s).attach(this),s.destroy(),t.setMask(this.ƀgh);}ƀ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 Te=class extends Attachable{static{h(this,"SlideStateAnimation");}constructor(t){super(),this.ƀn=S.Idle,this.ƀgz=new Action,this.ƀhb=new Action,this.ƀhe={duration:500,animation:P.easeInOutCubic,...t},this.ƀjr=new xe({duration:this.ƀhe.duration,animation:this.ƀhe.animation}).onStateChange((e,i)=>this.ƀet(e,i)).onValueChange(e=>this.ƀeu(e)).attach(this);}setIndex(t,e){if(!Comparator.isInteger(t))throw new Error("SlideStateAnimation: index must be an integer!");this.ƀfi===void 0?(this.ƀfi=t,this.ƀgz.trigger({state:et.Appear,index:t}),this.ƀjr.setState(t,e)):this.ƀfi!==t?this.ƀgq!==t?this.ƀn===S.Idle?(this.ƀn=t>this.ƀfi?S.TransitionForward:S.TransitionBackward,this.ƀgq=t,this.ƀgz.trigger({state:et.Appear,index:this.ƀgq}),this.ƀjr.setState(t,e)):this.ƀjr.setState(t,e):this.ƀn===S.Reverting&&this.ƀgq===t&&(this.ƀn=t>this.ƀfi?S.TransitionForward:S.TransitionBackward,this.ƀjr.setState(t,e)):(this.ƀn===S.TransitionForward||this.ƀn===S.TransitionBackward)&&(this.ƀn=S.Reverting,this.ƀjr.setState(t,e));}ƀet(t,e){switch(this.ƀfi!==void 0&&this.ƀfi!==t&&this.ƀfi!==e&&this.ƀgz.trigger({state:et.Disappear,index:this.ƀfi}),this.ƀgq!==void 0&&this.ƀgq!==t&&this.ƀgq!==e&&this.ƀgz.trigger({state:et.Disappear,index:this.ƀgq}),e!==void 0&&e!==this.ƀfi&&e!==this.ƀgq&&this.ƀgz.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.ƀfi=this.ƀgq,this.ƀgq=void 0):this.ƀfi!==t&&this.ƀeq(t,e);break;case S.Reverting:e===void 0?(this.ƀn=S.Idle,this.ƀgq=void 0):this.ƀfi!==e&&this.ƀeq(t,e);break;default:{this.ƀn;throw new Error(`Unexpected case! "${this.ƀn}"`)}}}ƀeu(t){let e=1;(this.ƀn===S.TransitionBackward||this.ƀn===S.Reverting&&this.ƀfi!==void 0&&this.ƀgq!==void 0&&this.ƀfi>this.ƀgq)&&(e=-1),(this.ƀn===S.Idle||t!==0)&&this.ƀhb.trigger({value:NumberHelper.ensurePositiveZero(-e*t),index:this.ƀfi}),this.ƀgq!==void 0&&this.ƀhb.trigger({value:NumberHelper.ensurePositiveZero(e*(1-t)),index:this.ƀgq});}ƀeq(t,e){this.ƀfi=t,this.ƀgq=e,this.ƀhb.trigger({value:0,index:this.ƀfi}),this.ƀn=this.ƀfi<this.ƀgq?S.TransitionForward:S.TransitionBackward;}onStateChange(t){return this.ƀgz.subscribe(e=>t(e.state,e.index)).attach(this),this}onValueChange(t){return this.ƀhb.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 f{static{h(this,"SlideInContentByIndex");}constructor(t,e){super(),this.ƀbu=t,this.ƀcm="x",this.ƀbj=new Map,this.ƀhe={duration:300,animation:P.easeInOutCubic,size:new Vector(500,500),margin:20,direction:tt.Horizontal,...e};let i=this.ƀhe.direction===tt.Horizontal?new Vector(this.ƀhe.size.x+this.ƀhe.margin*2,this.ƀhe.size.y):new Vector(this.ƀhe.size.x,this.ƀhe.size.y+this.ƀhe.margin*2),r=new f().setPosition(this.ƀhe.direction===tt.Horizontal?new Vector(-this.ƀhe.margin,0):new Vector(0,-this.ƀhe.margin),{round:false}).displayParent(this).attach(this);this.ƀbz(i,this.ƀhe.margin,this.ƀhe.direction,r),this.ƀcm=this.ƀhe.direction===tt.Horizontal?"x":"y",this.ƀjr=new Te({duration:this.ƀhe.duration,animation:this.ƀhe.animation}).onStateChange((s,n)=>{if(s===et.Appear){let a=new f().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.ƀhe.margin,a.setPosition(Vector.fromVec2(l),{round:false});}}).attach(this),this.addChildTo=r;}setIndex(t,e){return this.ƀjr.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.ƀko=new Map;}add(t){let e=this.ƀko.get(t.x);e||(e=new Set,this.ƀko.set(t.x,e)),e.add(t.y);}has(t){let e=this.ƀko.get(t.x);return e?e.has(t.y):false}delete(t){let e=this.ƀko.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.ƀjo=e,this.ƀhd=new BinaryHeap("min"),this.ƀav=[],this.ƀgs=new Grid({size:t.size,defaultValue:void 0});let i=new Wi(this.ƀjo,0,Number.MAX_SAFE_INTEGER);this.ƀhd.add(i.pathLength,i);}get hasOpenNodes(){return this.ƀhd.size>0}getNeighbors(t,e){return this.ƀep.getNeighborPositions(t.position,e).filter(i=>this.ƀep.get(i)).map(i=>this.ƀgs.get(i)||this.ƀca(i))}popLowestPathCostNode(){let t=this.ƀhd.pop();return this.ƀhd.delete(t),t.closed=true,this.ƀav.push(t),t}changeNodeCost(t,e,i,r){this.ƀhd.delete(t),t.distanceFromStart=e,t.distanceToEnd=t.getDistance(i),t.parent=r,this.ƀhd.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.ƀgs.set(t,e),this.ƀhd.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.ƀjw=t,this.ƀw=e,this.ƀew=this.ƀdx(this.ƀw.size),this.ƀkw=new Grid({size:this.ƀw.size,defaultValue:this.ƀew}),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.ƀkw.set(n,0),r.add(n);});r.notEmpty;){let n=r.pop();if(!i.has(n)){i.add(n);let a=this.ƀkw.getOrFail(n);this.ƀec(n,this.ƀw).forEach(l=>{if(!i.has(l.position)){let c=this.ƀkw.getOrFail(l.position),p=a+l.distance;this.ƀw.getOrFail(l.position)&&p<c&&(this.ƀkw.set(l.position,p),r.add(l.position));}});}}}getDirectionToTarget(t){if(!t.isInsideRectangle(this.ƀjw)){if(t=this.ƀkw.movePositionInsideGrid(t),this.ƀcn.has(t))return this.ƀcn.get(t);{let e=this.ƀec(t,this.ƀw),i;return this.ƀkw.getOrFail(t)>=this.ƀew?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.ƀkw.getOrFail(r.position)<this.ƀew).reduce((r,s)=>{let n=this.ƀkw.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.ƀew}).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.ƀfo(e,i))return Random.pickRandomElement(t).radian;if(t.length>=1)return i.radian}}ƀfo(t,e){let i=t.add(this.ƀkp(e));return this.ƀw.isPointWithinBounds(i)&&this.ƀw.getOrFail(i)}ƀec(t,e){return this.ƀkw.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}ƀkp(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 ut{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([ft()],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.ƀip=new f().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 f().displayParent(this.ƀip).attach(this),this.ƀao=new f().displayParent(this.ƀip).attach(this),this.ƀdh=new f().setSortableChildren(true).displayParent(this.ƀip).attach(this),this.ƀan=new f().setSortableChildren(true).displayParent(this.ƀao).attach(this),this.ƀdg=new f().setSortableChildren(true).setZIndex(20).displayParent(this.ƀan).attach(this),this.ƀgf=new f().setSortableChildren(true).setZIndex(10).displayParent(this.ƀan).attach(this),this.ƀz=new f().setZIndex(0).displayParent(this.ƀan).attach(this),this.ƀh=new D(this.ƀip,"alpha",{duration:500,animation:P.easeInOutCubic,reAnimateHandling:_.CompletePrevious,completionHandling:C.StayInCurrentState}),this.ƀad=new D(this.ƀac,"alpha",{duration:500,animation:P.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.ƀgf.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.screenSizeCenter.value)}};At=ws([Ye({entity:V}),xs("design:paramtypes",[V])],At);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=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??Ss,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.ƀfr(i,r,t):i.position.value=r);}ƀfr(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=Ps([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.ƀfl}static{this.pause=Reducer.createOr();}static get camera(){return this.ƀal}static get time(){return y.ƀkd}static get setupOptions(){return this.ƀje}constructor(t){if(this.ƀit=new Variable(Vector.zero),this.screenSize=this.ƀit.notifier,this.ƀiu=new Variable(Vector.zero),this.screenSizeCenter=this.ƀiu.notifier,this.devMode=false,this.resetScreenPositionToStagePositionFunction(),o.ƀfl)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});this.ƀhu=new L.Application(e);}}async setup(t){o.ƀje=t;let e=document.body.appendChild(this.ƀhu.view);this.ƀjd(e),await Promise.all([M.loadGameAssets(t.assetDefinitions)]),o.ƀfl=this,this.stage=new f().attachToRoot(),this.stage.ƀhv=this.ƀhu.stage,this.renderer=this.ƀhu.renderer,this.stage.sortableChildren=true,globalThis.ƀa=this.ƀhu,this.ƀer(),o.ƀal=new Qt,this.ƀhu.start(),this.ƀhu.ticker.add(()=>{y.triggerUpdateTick(this.ƀhu.ticker.deltaMS);});}setResolution(t){if(this.ƀhu.renderer.resolution!==t){this.ƀhu.renderer.resolution=t;let e=this.ƀeg();this.ƀhu.renderer.resize(e.x,e.y);}}screenPositonToStagePosition(t){let e=Ut.includeScaleInScreenPosition(t,o.instance.stage.scale,o.instance.screenSizeCenter.value);return this.ƀis(e)}setScreenPositionToStagePositionFunction(t){this.ƀis=t;}resetScreenPositionToStagePositionFunction(){this.ƀis=t=>t;}destroyAsset(t){M.destroyAsset(t);}ƀer(){this.ƀcv(),this.ƀjc(),window.addEventListener("resize",t=>{this.ƀcv(),this.ƀjc();});}ƀcv(){let t=this.ƀeg();(t.x!==this.ƀhu.screen.width||t.y!==this.ƀhu.screen.height)&&this.ƀhu.renderer.resize(t.x,t.y);}ƀjc(){let t=new Vector(this.ƀhu.screen.width,this.ƀhu.screen.height);this.ƀit.value=t,this.ƀiu.value=t.multiplyNumber(.5).round();}ƀeg(){let t=this.ƀbf.screenResolution?.width??window.innerWidth,e=this.ƀbf.screenResolution?.height??window.innerHeight;return this.ƀbf.maxScreenResolution&&(t=Math.min(t,this.ƀbf.maxScreenResolution.width),e=Math.min(e,this.ƀbf.maxScreenResolution.height)),new Vector(t,e)}ƀjd(t){this.ƀbf.maxScreenResolution&&(t.style.maxWidth=`${this.ƀbf.maxScreenResolution?.width}px`,t.style.maxHeight=`${this.ƀbf.maxScreenResolution?.height}px`),t.style.width="100%",t.style.height="100%";}};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 f{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.ƀhv.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 f{static{h(this,"Placeholder");}constructor(t){super(),this.ƀhx=new L.Graphics,this.ƀhx.beginFill(0,1e-9),this.ƀhx.drawRect(0,0,t.x,t.y),this.ƀhx.endFill(),this.ƀhv.addChild(this.ƀhx);}destroy(){this.destroyed||(super.destroy(),this.ƀhx.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.ƀfh(r,e),n=this.ƀr(s);return this.ƀjj(n)}static ƀfh(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 ƀjj(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.ƀjk(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 ƀjk(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.ƀkx-this.ƀck}constructor(t,e){this.ƀkx=t,this.ƀfz=[],this.ƀci=[],this.ƀck=0,this.ƀfy=new Vector(0,0),this.ƀcj=0;let i={rectangleCutOption:void 0,horizontalAlignment:"left",verticalAlignment:"bottom",...e};if(this.ƀez=i.horizontalAlignment,this.ƀkq=i.verticalAlignment,i.rectangleCutOption){if(i.rectangleCutOption.position.x<0||i.rectangleCutOption.position.x>=this.ƀkx||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.ƀfy.y,this.ƀfy.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.ƀfy.y,this.ƀfy.y+e);this.ƀfy=new Vector(i,this.ƀfy.y),this.ƀck=this.ƀfy.x;}this.ƀci.push({chunk:t,position:new Vector(this.ƀck,this.ƀfy.y)}),this.ƀcj=e,this.ƀck+=t.style.width;}newLine(){let t=this.ƀfy.y+this.ƀcj,e=this.ƀdz(t,t);this.ƀde(),this.ƀfy=new Vector(e,t),this.ƀck=this.ƀfy.x,this.ƀcj=0;}print(){return this.ƀde(),this.ƀfz}ƀde(){this.ƀci.length>0&&(this.ƀfz.push(this.ƀg(this.ƀci)),this.ƀci=[]);}ƀg(t){return t=this.ƀks(t),t=this.ƀfb(t),t}ƀfb(t){if(this.ƀez==="left")return t;let e=this.ƀfy.y+this.ƀcj,i=this.ƀdz(this.ƀfy.y,e),s=this.ƀdy(this.ƀfy.y,e)-i,n=Math.min(s,t.reduce((l,c)=>l+c.chunk.style.width,0)),a;return this.ƀez==="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))}ƀks(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.ƀkq){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.ƀkq;throw new Error(`Unexpected case! "${this.ƀkq}"`)}}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.ƀkx,t),{includeEdges:false})||this.ƀcl.rectangle.isPointInside(new Vector(this.ƀkx,e),{includeEdges:false}))?this.ƀcl.rectangle.topLeft.x:this.ƀkx}ƀ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.ƀky(r,e);}else e.insertWord(r);else e.lineIsEmpty?e.insertWord(r):r.whitespace?this.ƀky(r,e):(e.newLine(),e.insertWord(r));}),e.newLine();}),e.print()}static ƀky(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.ƀgm(t),t=this.ƀkh(t),this.ƀat(t)}static ƀgm(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 ƀkh(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 f{static{h(this,"Text");}get ƀka(){if(!this.ƀkb){let t=new L.TextStyle(this.ƀhz);this.ƀkb=L.TextMetrics.measureText(this.ƀjz,t);}return this.ƀkb}get ascent(){return this.ƀka.fontProperties.ascent}constructor(t,e){super(),this.ƀhz=Ot.getPixiTextStyle(e),this.setText(t);}destroy(){this.destroyed||(super.destroy(),!this.ƀhy.destroyed&&this.ƀhy.destroy());}setAnchor(t){return this.anchor=t,this}get anchor(){return new Vector(this.ƀhy.anchor.x,this.ƀhy.anchor.y)}set anchor(t){this.ƀi=t,this.ƀhy.anchor.set(t.x,t.y);}setText(t){return this.ƀjz!==t&&(this.ƀjz=t,this.ƀig()),this}setColor(t){let e=ColorHelper.rgbToHex(t);return this.ƀhz.fill!==e&&(this.ƀhz.fill=e,this.ƀig()),this}ƀig(){this.ƀhy?.destroy(),this.ƀju?.destroy(),this.ƀju=void 0,this.ƀkb=void 0;let t=new L.TextStyle(this.ƀhz);this.ƀhy=new L.Text(this.ƀjz,t),this.ƀik(),this.ƀi&&this.ƀhy.anchor.set(this.ƀi.x,this.ƀi.y),this.ƀhy.scale.set(Xi,Xi),this.ƀhv.addChild(this.ƀhy),this.ƀhz.lineThrough&&(this.ƀju=this.ƀe(this.ƀhy,this.ƀhz.fill),this.ƀhv.addChild(this.ƀju));}ƀik(){let t=L.TextMetrics.measureText(this.ƀjz,new L.TextStyle({...this.ƀhz,dropShadow:false,dropShadowAlpha:0,dropShadowBlur:0,dropShadowDistance:0}));this.ƀhy.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 f{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 f{static{h(this,"UpdatableContainer");}},ci=class extends f{static{h(this,"DisplayObjectArray");}constructor(t,e){super(),this.ƀbu=t,this.ƀco=new Map,this.ƀhe={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.ƀhe.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.ƀhe.positioning.direction==="horizontal"?(a.x=i,i+=a.size.x+this.ƀhe.positioning.spacing):(a.y=i,i+=a.size.y+this.ƀhe.positioning.spacing);}),e.forEach(r=>{this.ƀco.get(r).destroy(),this.ƀco.delete(r);});}};var ee=class o extends f{static{h(this,"MenuUI");}static{this.ƀfn=Reducer.createExistenceChecker();}static{this.isAnyMenuTransitioning=this.ƀfn.notifier;}constructor(t,e){super(),this.ƀgw=new SingleAction,this.onCreate=this.ƀgw.notifier,this.ƀgy=new SingleAction,this.onOpen=this.ƀgy.notifier,this.ƀgt=new SingleAction,this.onClose=this.ƀgt.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: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.ƀgk=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.ƀgw.resolve();let s=o.ƀfn.effect().attach(this);this.ƀo.animate({alpha:1}).chain(this).tap(()=>{this.ƀgy.resolve(),s.destroy(),i.closeOnBackgroundClick&&r.on(St.Click).take(1).tap(()=>this.close()).attach(this);}).attachToRoot();}getBoundingMask(){return this.ƀgk.getBoundingMask()}close(){if(!this.ƀaw){this.ƀaw=true;let t=o.ƀfn.effect().attach(this);this.ƀo.animate({alpha:0}).chain(this).map(()=>{this.ƀgt.resolve(),t.destroy(),this.destroy();}).chainToRoot();}return this.onClose.toSingleEvent()}};var di=class extends ut{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.ƀhe=t,queueMicrotask(()=>{if(!this.ƀgl)throw new Error("MenuEntity: MenuEntity has to have a MenuView.")});}ƀii(t){this.ƀgl=t,this.ƀgl.onClose.subscribe(()=>this.destroy()).attach(this);}onCreate(){return this.ƀgl.onCreate.toSingleEvent()}onOpen(){return this.ƀgl.onOpen.toSingleEvent()}onClose(){return this.ƀgl.onClose.toSingleEvent()}close(){return this.ƀgl.close()}};var fi=class extends dt{static{h(this,"MenuView");}constructor(t,e,i){super();let r=JsonHelper.removeUndefinedProperties({appearAnimationDuration:i.appearAnimationDuration,backgroundDarkeningRatio:i.backgroundDarkeningRatio,closeOnBackgroundClick:t.ƀhe.closeOnBackgroundClick}),s=new ee(e,r).displayParent(w.camera.layers.foregroundScreen).attach(this);t.ƀii(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.ƀiv}get contentSize(){return this.ƀbh.size.ceil()}constructor(t,e,i,r){this.ƀbh=t,this.ƀu=e,this.ƀhh=i,this.ƀji=r,this.ƀfk=false,this.ƀiv=e-i*2,this.ƀbh.y=i,this.ƀjv=i;}onWheel(t){this.setTarget(this.ƀjv-t*Ks);}scrollToTop(){this.setTarget(1/0);}scrollToBottom(){this.setTarget(-1/0);}setTarget(t){this.ƀjv=NumberHelper.clamp(t,this.ƀu-this.ƀhh-this.contentSize.y,this.ƀhh);}jumpToTarget(){this.ƀbh.y=this.ƀjv;}update(t){let e=this.contentSize;if(e.y<=this.ƀiv){switch(this.ƀji){case "start":this.ƀjv=this.ƀhh;break;case "center":this.ƀjv=(this.ƀu-e.y)*.5;break;case "end":this.ƀjv=this.ƀu-e.y-this.ƀhh;break;default:{this.ƀji;throw new Error(`Unexpected case! "${this.ƀji}"`)}}this.ƀfk||(this.ƀbh.y=this.ƀjv);}this.ƀfk=true;let i=this.ƀjv-this.ƀbh.y;this.ƀbh.y=this.ƀbh.y+i*Zs*t;}};var qs=15,ui=class extends f{static{h(this,"ScrollAreaUI");}get contentAreaSize(){return this.ƀbi}get contentSize(){return this.ƀiw.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 f().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.ƀhv.addChild(s);let n=new f().displayParent(r).attach(this);this.ƀiw=new Fe(n,t.y,i.padding,i.smallContentAlign),this.ƀbi=new Vector(t.x,this.ƀiw.scrollHeight),s.eventMode="dynamic",s.addEventListener("wheel",a=>{this.ƀiw.onWheel(a.deltaY);}),n.setInteractive(true),n.ƀhv.addEventListener("wheel",a=>{this.ƀiw.onWheel(a.deltaY);}),y.afterSceneUpdateAction.subscribe(a=>this.ƀiw.update(a.delta)).attach(this),this.addChildTo=n;}scrollToTop(t){this.ƀiw.scrollToTop(),t?.instant&&this.ƀiw.jumpToTarget();}scrollToBottom(t){this.ƀiw.scrollToBottom(),t?.instant&&this.ƀiw.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.ƀfu=new Action,this.keyPressed=this.ƀfu.notifier,this.ƀfv=new Action,this.keyReleased=this.ƀfv.notifier,this.ƀgb=new Set,this.ƀga=new Set,window.addEventListener("keydown",t=>{this.ƀgb.add(t.code),this.ƀga.add(t.code),!t.repeat&&this.ƀfu.trigger({key:t.key,code:t.code});}),window.addEventListener("keyup",t=>{this.ƀgb.delete(t.code),this.ƀfv.trigger({key:t.key,code:t.code});}),window.addEventListener("blur",()=>{this.ƀgb.clear();}),y.afterSceneUpdateAction.subscribe(()=>this.ƀga.clear()).attachToRoot();}isKeyDown(t,e){return (e?.onlyPressedThisFrame?this.ƀga:this.ƀgb).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");}constructor(){this.ƀfj=new Variable(false),this.initialMouseMovementHappened=this.ƀfj.notifier,this.ƀjm=new Variable(Vector.zero,{notifyOnChange:true}),this.stagePosition=this.ƀjm.notifier,this.ƀir=new Variable(Vector.zero,{notifyOnChange:true}),this.screenPosition=this.ƀir.notifier,this.ƀge=new Variable(false),this.mainButtonState=this.ƀge.notifier,this.ƀix=new Variable(false),this.secondaryButtonState=this.ƀix.notifier,this.ƀjn(),window.addEventListener("pointerdown",t=>{t.button===0?this.ƀge.value=true:t.button===2&&(this.ƀix.value=true);},{capture:true}),window.addEventListener("pointerup",t=>{t.button===0?this.ƀge.value=false:t.button===2&&(this.ƀix.value=false);},{capture:true}),window.addEventListener("blur",()=>{this.ƀge.value=false,this.ƀix.value=false;},{capture:true});}ƀjn(){let t=Vector.zero;window.addEventListener("pointermove",e=>{t=new Vector(e.clientX,e.clientY),this.ƀfj.value=true;},{capture:true}),y.beforeSceneUpdateAction.subscribe(()=>{this.ƀir.value=this.clientPositionToScreenPosition(t);}).attachToRoot(),y.afterSceneUpdateAction.subscribe(()=>{let e=w.instance.screenPositonToStagePosition(this.ƀir.value);e.isEqual(this.ƀjm.value)?w.instance.renderer.events.onPointerMove(new PointerEvent("pointermove",{clientX:t.x,clientY:t.y,pointerType:"mouse"})):this.ƀjm.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.ƀfx}constructor(t){this.ƀgo=t,this.ƀha=new Action,this.onTargetFocus=this.ƀha.notifier,this.ƀkf=0,this.ƀkg=false,this.ƀdf=false,this.ƀfx=void 0,y.beforeSceneUpdateAction.subscribe(e=>this.ƀkj(e.delta)).attachToRoot();}ƀkj(t){if(this.ƀgp){let e=this.ƀef(this.ƀgo.stagePosition.value,this.ƀgp);this.ƀhj===void 0?this.ƀhj=e:this.ƀas(e,t);}this.ƀgp=this.ƀgo.stagePosition.value;}ƀas(t,e){this.ƀhj-t>10?(this.ƀkf=Math.max(250,this.ƀkf),this.ƀkg=true):this.ƀkf>1e3&&(this.ƀkg=true);let i=this.ƀkf>=300&&this.ƀkg;this.ƀfs(i,t,e);}ƀfs(t,e,i){(t||e>this.ƀhj)&&(this.ƀhj=e),t?(this.ƀkg=false,this.ƀkf=0,this.ƀdf=true,this.ƀfx=this.ƀgo.stagePosition.value,this.ƀha.trigger(this.ƀfx)):(this.ƀkf+=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 u=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.ƀhg=new Map;}static{this.ƀhn=new Map;}static getFromP2BodyID(t){return o.ƀhg.get(t)}static getFromP2BodyIDOrFail(t){let e=o.ƀhg.get(t);if(!e)throw new Error(`PhysicsEntity with p2BodyID ${t} not found`);return e}static getPhysicsInstanceOrFail(t){let e=o.ƀhn.get(t);if(!e)throw new Error(`PhysicsEntity with id ${t} not found`);return e}static getPhysicsEntities(){return Array.from(o.ƀhn.values())}get area(){return this.ƀt}get mass(){return this.ƀgi}get collisions(){return this.ƀax}constructor(t,e,i){super(),this.ƀgu=new Action,this.onCollision=this.ƀgu.notifier,this.type="dynamic",this.ƀt=0,this.ƀgi=0,this.ƀax=[],this.physicsWorldID=t,this.ƀhp=T.get(Bt);let r=this.ƀhp.getMaterial(this.physicsWorldID,e.shapeDefinition.materialName),s=this.ƀhp.getMaterialDefinition(this.physicsWorldID,e.shapeDefinition.materialName);if(this.type=i,this.physicsBodyGroup=e.shapeDefinition.group,this.includeInPathfinding=e.includeOnPathfinding,this.ƀho=this.ƀhp.getGroupConstant(this.physicsWorldID,this.physicsBodyGroup),this.ƀhq=this.ƀhp.getMaskConstant(this.physicsWorldID,this.physicsBodyGroup),this.p2Body=this.ƀhp.createBody(this.physicsWorldID,e,r,s,this.type),this.ƀt=this.p2Body.getArea(),this.ƀgi=this.p2Body.mass,this.p2Body.position=u.vectorToArray(e.position),this.p2Body.angle=e.rotation.value,!this.ƀhp.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.ƀhg.set(this.p2Body.id,this),o.ƀhn.set(this.id,this);}destroy(){this.destroyed||(super.destroy(),this.ƀhp.removeBody(this.physicsWorldID,this.p2Body),o.ƀhg.delete(this.p2Body.id),o.ƀhn.delete(this.id));}canCollideWith(t){return u.arePhysicsGroupsCollidable(this.ƀho,this.ƀhq,t.ƀho,t.ƀhq)}ƀiz(t){this.ƀax=t,t.length>0&&this.ƀgu.trigger(t);}};var se=class extends b{static{h(this,"ImmovablePhysicsEntity");}constructor(t,e){super(t,e,"static"),this.position=u.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.ƀjs(t,e);}).attach(this);}ƀjs(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.ƀfc=false,this.ƀfd=false,this.ƀff=false,this.ƀfe=false,this.ƀhk(),this.ƀgc(),T.get(Bt).subscribeToPhysicsStep(t,({time:i,delta:r})=>this.ƀjs(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}}ƀjs(t,e){this.ƀfc=true,this.ƀfd=true,this.ƀff=true,this.ƀfe=true,this.ƀhk();}ƀhk(){this.position.value=u.arrayToVector(this.p2Body.position),this.rotation.value=new Radian(this.p2Body.angle),this.velocity.value=u.arrayToVector(this.p2Body.velocity),this.rotationalSpeed.value=this.p2Body.angularVelocity;}ƀgc(){this.position.subscribe(t=>{this.ƀfc?this.ƀfc=false:this.p2Body.position=[t.x,t.y];}).attach(this),this.rotation.subscribe(t=>{this.ƀfd?this.ƀfd=false:this.p2Body.angle=t.value;}).attach(this),this.velocity.subscribe(t=>{this.ƀff?this.ƀff=false:this.p2Body.velocity=[t.x,t.y];}).attach(this),this.rotationalSpeed.subscribe(t=>{this.ƀfe?this.ƀfe=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([ft(),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 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)},Le=class{static{h(this,"AvailabilityGridCacheService");}constructor(t){this.ƀhm=t;}getCollidableGrids(t,e){let i=[];return t.availabilityGridCache.forEach((r,s)=>{r.forEach((n,a)=>{this.ƀhm.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=Po([d(),So("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.ƀhm=t,this.ƀx=e;}onBodyAdded(t,e,i){e.aabbNeedsUpdate=true,e.updateAABB();let r=u.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),u.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.ƀhm.canCollide(t,n.physicsBodyGroup,i)){let a=this.ƀdw(s,e);r.setArea(a,false);}}),r}ƀdw(t,e){let i=u.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.ƀhl=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=u.arrayToVector(l.position)):a=i;let c=B.positionToGridPosition(e,s.gridCellSize),p=B.positionToGridPosition(a,s.gridCellSize),m=this.ƀhl.getAvilabilityGrid(n,s.gridCellSize,r);if(l){let R=u.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=u.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.ƀhl.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.ƀhi=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.ƀhi.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 f().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 f().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??u.arrayToVector(t.position),s=i?.overrideRotation??new Radian(t.angle),n=i?.color??ColorHelper.blue,a=new f().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=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.ƀjy=t;}hitTest(t,e){let i=t.world,r=b.getFromP2BodyIDOrFail(t.id),s=u.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=>u.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.ƀjy.createPhysicsEntityShapeVisual(t,e.testLayerID,{overridePosition:e.overridePosition,overrideRotation:e.overrideRotation,color:l});}return a}ƀs(t,e){e?.overridePosition&&(t.position=u.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.ƀih(t,i);});});}step(t,e,i){b.getPhysicsEntities().forEach(r=>{r.ƀax=[];}),t.p2World.narrowphase.contactEquations.forEach(r=>{this.ƀih(t,r);}),t.bodiesInContactWith.forEach((r,s)=>{this.ƀes(r.p2Body),r.entity.ƀiz(t.collisionReports.get(s)||[]);}),t.bodiesInContactWith.clear(),t.collisionReports.clear();}ƀes(t){let e=u.arrayToVector(t.velocity);e.length>yi&&(e=e.normalize(yi),t.velocity=u.vectorToArray(e)),t.angularVelocity=Math.min(Math.max(t.angularVelocity,-wi),wi);}ƀih(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=u.arrayToVector(i.contactPointA),a=u.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=u.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([ft(),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.ƀgj=t,this.ƀah=e,this.ƀy=i,this.ƀay=r,this.ƀhm=s;}createPhysicsWorld(t){let e=new U.World({gravity:[0,0]}),{materials:i,materialDefinitions:r}=this.ƀgj.createMaterials(e,t.borderProperties,t.materialDefinitions,t.materialContactDefinitions),{physicsBodyGroupToP2Group:s,physicsBodyGroupToP2Mask:n}=this.ƀhm.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.ƀjs(a,l,c)):y.beforeSceneUpdateAction.subscribe(({time:l,delta:c})=>{this.ƀjs(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);}ƀjs(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:u.vectorToArray(e.from),to:u.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:u.vectorToArray(e.from),to:u.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=u.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(u.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=u.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.ƀid=t,this.ƀjy=e,this.ƀic=i,this.ƀfg=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.ƀic.toExplosionHits(c,false);return this.ƀq(p,n),a?.testLayerID&&this.ƀjy.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 Pt=R*(pt+1),Ti=bt.multiplyNumber(pt+1),ne=c.normalize(this.ƀem(oe,hr,Pt)),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 Pt=this.ƀid.castClosest(n,pt,r);return {line:pt,hits:Pt?[Pt]:[]}}else {let Pt=this.ƀid.castAllFirstContacts(n,pt,r);return {line:pt,hits:Pt}}})}ƀ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.ƀfg.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.ƀid=t,this.ƀjy=e,this.ƀic=i,this.ƀfg=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.ƀic.toExplosionHits(c);return this.ƀq(e,i,s,l,p),n?.testLayerID&&this.ƀjy.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.ƀid.castClosest(n,p,i);return {line:p,hits:m?[m]:[]}}else {let m=this.ƀid.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.ƀfg.applyImpulse(a.body,a.hitPosition(),a.line.fromTo,l);});else {let a=Vector.fromTo(t,u.arrayToVector(n.p2Body.position)),l=a.length/e,c=i*r*l/2;this.ƀfg.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 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},un=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.ƀht=t,this.ƀhi=e,this.ƀjy=i,this.ƀdb=r,this.ƀcu=s,this.ƀex=n,this.ƀhs=a,this.ƀfg=l;}createPhysicsWorld(t){return this.ƀht.createPhysicsWorld(t)}getMapSize(t){return this.ƀhs.getMapSize(t)}setPaused(t,e){this.ƀht.setPaused(t,e);}hitTest(t,e){let i=b.getPhysicsInstanceOrFail(t);return this.ƀex.hitTest(i.p2Body,e)}findPath(t,e,i,r,s){return this.ƀhi.findPathAStar(t,e,i,r,{neighborType:s})}findPathDirection(t,e,i,r){return this.ƀhi.findPathDirection(t,e,i,r)}applyImpulse(t,e,i,r){let s=b.getPhysicsInstanceOrFail(t);this.ƀfg.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.ƀjy.printPathfindingTestGrid(t,e,i,r,s,n);}};Pi=fn([q({controllerLink:H}),un("design:paramtypes",[Vt,Ft,Q,ke,$e,Ne,Ht,lt])],Pi);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)},Si=class{static{h(this,"PhysicsInternalController");}constructor(t,e,i,r,s){this.ƀht=t,this.ƀhr=e,this.ƀjf=i,this.ƀhs=r,this.ƀhm=s;}createBody(t,e,i,r,s){return this.ƀjf.createBody(t,e,i,r,s)}getMaterial(t,e){return this.ƀhr.getMaterial(t,e)}getMaterialDefinition(t,e){return this.ƀhr.getMaterialDefinition(t,e)}getGroupConstant(t,e){return this.ƀhm.getGroupConstant(t,e)}getMaskConstant(t,e){return this.ƀhm.getMaskConstant(t,e)}addBody(t,e,i,r,s){return this.ƀht.addBody(t,e,i,r,s)}removeBody(t,e){this.ƀht.removeBody(t,e);}subscribeToPhysicsStep(t,e){return this.ƀhs.subscribeToPhysicsStep(t,e)}};Si=gn([q({controllerLink:X}),yn("design:paramtypes",[Vt,_t,ze,Ht,K])],Si);export{Oi as AnimationFlicker,z as AnimationInterpolationFunctions,P 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,f as Container,St as ContainerEventType,q as ControllerDecorator,$ as ControllerLink,Xe as Cursor,O as DEFAULT_SHADER_RESOLUTION,ei as DeltaTime,ci as DisplayObjectArray,k as Entity,ft 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,fi 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,ui as ScrollAreaUI,tt as ScrollDirection,yt as ScrollMaskUI,T as Service,d as ServiceDecorator,ut 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};
67
+ }`,e}constructor(t,e){if(super(o.ƀej(),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 ve=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.ƀcz=new xe(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.ƀcz.apply(t,e,s,L.CLEAR_MODES.CLEAR),this.ƀag.apply(t,s,i,r),t.returnFilterTexture(s);}};var Ut=class o{static{h(this,"GlowSpriteGenerator");}static{this.ƀem=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.ƀiz(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.ƀem.has(n))return o.ƀem.get(n);{let a=this.ƀdu(t,e,i,r);return o.ƀem.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 ve({blurRadius:e,expand:i,color:r})];let n=w.instance.renderer.generateTexture(s);return n.id=D.insertAsset(n),s.destroy(),n}static ƀiz(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:Tt.Add};return t&&(e={...e,...t}),e}};_.onHardReset.subscribe(()=>{Ut.ƀem.clear();}).attachToRoot();var z=class o extends f{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:D.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(D.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&&(D.destroyAsset(this.ƀjj.id),this.ƀhv&&D.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 ue(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=Ut.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.ƀbr().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.ƀbr(),this.ƀgg.pixiSprite._maskRefCount=Number.POSITIVE_INFINITY,this.ƀgg.pixiSprite.renderable=false,this.ƀgg.displayParent(this);}return this.ƀgg}ƀbr(){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 Ke=class{static{h(this,"AnimationEaseInOutFlatter");}start(){}multiplierFunction(t){return 3*(1-t)*Math.pow(t,2)+Math.pow(t,3)}},yt=class o extends f{static{h(this,"ScrollMaskUI");}static{this.ƀcq=new Map;}constructor(t,e,i,r=Q.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 f;r===Q.Horizontal?this.ƀbx(e,i,s):this.ƀce(e,i,s),this.ƀgg=z.createSnapshotSprite(s).attach(this),s.destroy(),t.setMask(this.ƀgg);}ƀce(t,e,i){e>0&&this.ƀbu(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.ƀbu(new Vector(t.x,e)).setPosition(new Vector(t.x,t.y),{round:false}).setRotation(Radian.get180).displayParent(i).attach(i);}ƀbx(t,e,i){e>0&&this.ƀbu(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.ƀbu(new Vector(t.y,e)).setPosition(new Vector(t.x,0),{round:false}).setRotation(Radian.get90).displayParent(i).attach(i);}ƀbu(t){let i={id:this.ƀbv(t.y),scale:1,size:t,anchor:{x:0,y:0}};return new z(i,{textureSize:t,ignoreAnchor:true})}ƀbv(t){let e=JSON.stringify({type:"gradient",length:t}),i=o.ƀcq.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 Ke;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=D.insertAsset(a),o.ƀcq.set(e,i);}else throw new Error("Canvas context is null")}return i}};var q;(function(o){o[o.Appear=1]="Appear",o[o.Disappear=2]="Disappear";})(q||(q={}));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 be=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 ge({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:q.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:q.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:q.Disappear,index:this.ƀfh}),this.ƀgp!==void 0&&this.ƀgp!==t&&this.ƀgp!==e&&this.ƀgy.trigger({state:q.Disappear,index:this.ƀgp}),e!==void 0&&e!==this.ƀfh&&e!==this.ƀgp&&this.ƀgy.trigger({state:q.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.ƀep(t,e);break;case P.Reverting:e===void 0?(this.ƀn=P.Idle,this.ƀgp=void 0):this.ƀfh!==e&&this.ƀep(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});}ƀep(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 Q;(function(o){o[o.Horizontal=1]="Horizontal",o[o.Vertical=2]="Vertical";})(Q||(Q={}));var Ze=class extends f{static{h(this,"SlideInContentByIndex");}constructor(t,e){super(),this.ƀbt=t,this.ƀcl="x",this.ƀbj=new Map,this.ƀhd={duration:300,animation:S.easeInOutCubic,size:new Vector(500,500),margin:20,direction:Q.Horizontal,...e};let i=this.ƀhd.direction===Q.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 f().setPosition(this.ƀhd.direction===Q.Horizontal?new Vector(-this.ƀhd.margin,0):new Vector(0,-this.ƀhd.margin),{round:false}).displayParent(this).attach(this);this.ƀby(i,this.ƀhd.margin,this.ƀhd.direction,r),this.ƀcl=this.ƀhd.direction===Q.Horizontal?"x":"y",this.ƀjp=new be({duration:this.ƀhd.duration,animation:this.ƀhd.animation}).onStateChange((s,n)=>{if(s===q.Appear){let a=new f().displayParent(this).attach(this);this.ƀbj.set(n,a),this.ƀbt({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.ƀcl]=i[this.ƀcl]*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}ƀby(t,e,i,r){new yt(r,new Vector(t.x,t.y),e,i).attach(this);}},Li=class extends Ze{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 Qe=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 kt=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 Ni=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)}},ls=class{static{h(this,"PathfinderGrid");}constructor(t,e){this.ƀeo=t,this.ƀjm=e,this.ƀhc=new BinaryHeap("min"),this.ƀav=[],this.ƀgr=new Grid({size:t.size,defaultValue:void 0});let i=new Ni(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.ƀeo.getNeighborPositions(t.position,e).filter(i=>this.ƀeo.get(i)).map(i=>this.ƀgr.get(i)||this.ƀbz(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)}ƀbz(t){let e=new Ni(t,Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER);return this.ƀgr.set(t,e),this.ƀhc.add(e.pathLength,e),e}},zt=class{static{h(this,"PathFinder");}static findPath(t,e,i,r){let s=new ls(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 Jt=class{static{h(this,"VectorFieldPathFinder");}constructor(t,e){this.ƀju=t,this.ƀw=e,this.ƀev=this.ƀdw(this.ƀw.size),this.ƀku=new Grid({size:this.ƀw.size,defaultValue:this.ƀev}),this.ƀcm=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.ƀ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.ƀeb(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.ƀcm.has(t))return this.ƀcm.get(t);{let e=this.ƀeb(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.ƀdq(e):i=this.ƀdl(t,e)):i=this.ƀdl(t,e),this.ƀcm.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.ƀ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.ƀeh(i,t)}ƀeh(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)}ƀeb(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}))}ƀ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}ƀkn(t){let e=t.normalize().round();return new Vector(e.x,e.y)}ƀdw(t){return (t.x+t.y)*20}};var us=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 ut{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=us([ft()],V);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},gs=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.ƀin=new f().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 f().displayParent(this.ƀin).attach(this),this.ƀao=new f().displayParent(this.ƀin).attach(this),this.ƀdg=new f().setSortableChildren(true).displayParent(this.ƀin).attach(this),this.ƀan=new f().setSortableChildren(true).displayParent(this.ƀao).attach(this),this.ƀdf=new f().setSortableChildren(true).setZIndex(20).displayParent(this.ƀan).attach(this),this.ƀge=new f().setSortableChildren(true).setZIndex(10).displayParent(this.ƀan).attach(this),this.ƀz=new f().setZIndex(0).displayParent(this.ƀan).attach(this),this.ƀh=new M(this.ƀin,"alpha",{duration:500,animation:S.easeInOutCubic,reAnimateHandling:F.CompletePrevious,completionHandling:C.StayInCurrentState}),this.ƀad=new M(this.ƀac,"alpha",{duration:500,animation:S.easeInOutCubic,reAnimateHandling:F.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.ƀcw.position.subscribe(e=>{this.ƀan.position=this.ƀbo(e);}).attach(this),this.ƀcw.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.ƀ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".')}}}ƀbo(t){return Vector.fromTo(t,w.instance.screenSizeCenter.value)}};It=ms([ke({entity:V}),gs("design:paramtypes",[V])],It);var xs=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},vs=1500,Pe=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??vs,position:e.position.value,roundPosition:t?.roundPosition??false,roundPositionThreshold:t?.roundPositionThreshold??0,focusingAnimation:t?.animation??rt.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===rt.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===rt.EaseInOut?n=$.easeInOut(s):r.focusingAnimation===rt.EaseOut?n=$.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;}};Pe=xs([d()],Pe);var bs=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},Ss=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},ei=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()}};ei=bs([Z(it),Ss("design:paramtypes",[Pe])],ei);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},ii=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)}};ii=Ps([Z(gt)],ii);var Xt=class{static{h(this,"Camera");}get position(){return this.ƀam.getCameraPosition()}constructor(){this.ƀam=T.get(it),this.ƀaq=T.get(gt),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}constructor(t){if(this.ƀir=new Variable(Vector.zero),this.screenSize=this.ƀir.notifier,this.ƀis=new Variable(Vector.zero),this.screenSizeCenter=this.ƀis.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});this.ƀht=new L.Application(e);}}async setup(t){o.ƀjc=t;let e=document.body.appendChild(this.ƀht.view);this.ƀjb(e),await Promise.all([D.loadGameAssets(t.assetDefinitions)]),o.ƀfk=this,this.stage=new f().attachToRoot(),this.stage.ƀhu=this.ƀht.stage,this.renderer=this.ƀht.renderer,this.stage.sortableChildren=true,globalThis.ƀa=this.ƀht,this.ƀeq(),o.ƀal=new Xt,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.ƀef();this.ƀht.renderer.resize(e.x,e.y);}}screenPositonToStagePosition(t){let e=Ht.includeScaleInScreenPosition(t,o.instance.stage.scale,o.instance.screenSizeCenter.value);return this.ƀiq(e)}setScreenPositionToStagePositionFunction(t){this.ƀiq=t;}resetScreenPositionToStagePositionFunction(){this.ƀiq=t=>t;}destroyAsset(t){D.destroyAsset(t);}ƀeq(){this.ƀcu(),this.ƀja(),window.addEventListener("resize",t=>{this.ƀcu(),this.ƀja();});}ƀcu(){let t=this.ƀef();(t.x!==this.ƀht.screen.width||t.y!==this.ƀht.screen.height)&&this.ƀht.renderer.resize(t.x,t.y);}ƀja(){let t=new Vector(this.ƀht.screen.width,this.ƀht.screen.height);this.ƀir.value=t,this.ƀis.value=t.multiplyNumber(.5).round();}ƀef(){let t=this.ƀbf.screenResolution?.width??window.innerWidth,e=this.ƀbf.screenResolution?.height??window.innerHeight;return this.ƀbf.maxScreenResolution&&(t=Math.min(t,this.ƀbf.maxScreenResolution.width),e=Math.min(e,this.ƀbf.maxScreenResolution.height)),new Vector(t,e)}ƀjb(t){this.ƀbf.maxScreenResolution&&(t.style.maxWidth=`${this.ƀbf.maxScreenResolution?.width}px`,t.style.maxHeight=`${this.ƀbf.maxScreenResolution?.height}px`),t.style.width="100%",t.style.height="100%";}};var Ee=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 re=s.normalize(i.dashLength);ArrayHelper.createEmptyArray(m).forEach(()=>{l=l.add(bt),a.push({from:l,to:l.add(re)}),l=l.add(re);});}return l=l.add(bt),a.push({from:l,to:l.add(R)}),a}};var E=class o extends f{static{h(this,"Graphics");}static{this.ƀcq=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),Ee.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.ƀeg(e.cacheName,e.cache),r={id:i.assetID,scale:1,size:i.bounds,anchor:{x:0,y:0},destroyAssetOnDestroy:!e.cache},s=new z(r,{texturePosition:i.bounds,ignoreAnchor:true});return this.attachToRoot(),this.destroy(),s}ƀeg(t,e){if(e){let i=o.ƀcq.get(t);return i||(i=this.ƀcd(),o.ƀcq.set(t,i)),i}else return this.ƀcd()}ƀcd(){let t=w.instance.renderer.generateTexture(this.pixiGraphics);t.id=D.insertAsset(t);let e=this.pixiGraphics.getBounds();return {assetID:t.id,bounds:new Vector(e.x,e.y)}}};var si=class extends f{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 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 Ce=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=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 ƀ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 Ie=class{static{h(this,"RichTextTypewriter");}get lineIsEmpty(){return this.ƀch.length===0}get remainingWidth(){return this.ƀkv-this.ƀcj}constructor(t,e){this.ƀkv=t,this.ƀfy=[],this.ƀch=[],this.ƀcj=0,this.ƀfx=new Vector(0,0),this.ƀci=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.ƀck={direction:i.rectangleCutOption.direction,rectangle:this.ƀbn(i.rectangleCutOption)};}}isSpaceAvailable(t){let e=Math.max(this.ƀci,t.y),i=this.ƀdx(this.ƀfx.y,this.ƀfx.y+e);return this.ƀcj+t.x<=i}insertWord(t){let e=Math.max(this.ƀci,t.style.height);if(this.ƀch.length===0){let i=this.ƀdy(this.ƀfx.y,this.ƀfx.y+e);this.ƀfx=new Vector(i,this.ƀfx.y),this.ƀcj=this.ƀfx.x;}this.ƀch.push({chunk:t,position:new Vector(this.ƀcj,this.ƀfx.y)}),this.ƀci=e,this.ƀcj+=t.style.width;}newLine(){let t=this.ƀfx.y+this.ƀci,e=this.ƀdy(t,t);this.ƀdd(),this.ƀfx=new Vector(e,t),this.ƀcj=this.ƀfx.x,this.ƀci=0;}print(){return this.ƀdd(),this.ƀfy}ƀdd(){this.ƀch.length>0&&(this.ƀfy.push(this.ƀg(this.ƀch)),this.ƀch=[]);}ƀ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.ƀci,i=this.ƀdy(this.ƀfx.y,e),s=this.ƀdx(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})}ƀdy(t,e){return this.ƀck&&(this.ƀck.direction==="topLeft"||this.ƀck.direction==="bottomLeft")&&(this.ƀck.rectangle.isPointInside(new Vector(0,t),{includeEdges:false})||this.ƀck.rectangle.isPointInside(new Vector(0,e),{includeEdges:false}))?this.ƀck.rectangle.bottomRight.x:0}ƀdx(t,e){return this.ƀck&&(this.ƀck.direction==="topRight"||this.ƀck.direction==="bottomRight")&&(this.ƀck.rectangle.isPointInside(new Vector(this.ƀkv,t),{includeEdges:false})||this.ƀck.rectangle.isPointInside(new Vector(this.ƀkv,e),{includeEdges:false}))?this.ƀck.rectangle.topLeft.x:this.ƀkv}ƀbn(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 Ae=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 Oe=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 Kt=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=Ce.process(t,e),r=JsonHelper.removeUndefinedProperties({rectangleCutOption:e.rectangleCut,verticalAlignment:e.verticalAlignment,horizontalAlignment:e.default.align}),s=new Ie(e.default.wordWrapWidth??1/0,r),n=Ae.wrapText(i,s);return Oe.process(n)}};var Ns=1,zi=1/Ns,Zt=class extends f{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=At.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.ƀii(),this.ƀi&&this.ƀhx.anchor.set(this.ƀi.x,this.ƀi.y),this.ƀhx.scale.set(zi,zi),this.ƀhu.addChild(this.ƀhx),this.ƀhy.lineThrough&&(this.ƀjs=this.ƀe(this.ƀhx,this.ƀhy.fill),this.ƀhu.addChild(this.ƀjs));}ƀii(){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 oi=class extends f{static{h(this,"RichText");}constructor(t,e){super(),Kt.process(t,e).forEach(r=>new Zt(r.text,r.style).setPosition(r.position).displayParent(this).attach(this));}};var ni=class extends f{static{h(this,"UpdatableContainer");}},ai=class extends f{static{h(this,"DisplayObjectArray");}constructor(t,e){super(),this.ƀbt=t,this.ƀcn=new Map,this.ƀhd={trackBy:h((i,r)=>r,"trackBy"),positioning:{direction:"vertical",spacing:0},...e};}set(t){let e=new Set(this.ƀcn.keys()),i=0;t.forEach((r,s)=>{let n=this.ƀhd.trackBy(r,s),a;this.ƀcn.has(n)?(a=this.ƀcn.get(n),e.delete(n),a.update(r)):(a=this.ƀbt(r).displayParent(this).attach(this),this.ƀcn.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.ƀcn.get(r).destroy(),this.ƀcn.delete(r);});}};var Qt=class o extends f{static{h(this,"MenuUI");}static{this.ƀfm=Reducer.createExistenceChecker();}static{this.isAnyMenuTransitioning=this.ƀfm.notifier;}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 M(this,"alpha",{animation:S.easeInOutCubic,duration:i.appearAnimationDuration,reAnimateHandling:F.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=z.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()}};var li=class extends ut{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()}onOpen(){return this.ƀgk.onOpen.toSingleEvent()}onClose(){return this.ƀgk.onClose.toSingleEvent()}close(){return this.ƀgk.close()}};var ci=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 Qt(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 Js=.65,Ys=.01,Me=class{static{h(this,"SmoothScroller");}get scrollHeight(){return this.ƀit}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.ƀit=e-i*2,this.ƀbh.y=i,this.ƀjt=i;}onWheel(t){this.setTarget(this.ƀjt-t*Js);}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.ƀit){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*Ys*t;}};var Ks=15,pi=class extends f{static{h(this,"ScrollAreaUI");}get contentAreaSize(){return this.ƀbi}get contentSize(){return this.ƀiu.contentSize}constructor(t,e={}){super();let i={padding:Ks,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 f().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 f().displayParent(r).attach(this);this.ƀiu=new Me(n,t.y,i.padding,i.smallContentAlign),this.ƀbi=new Vector(t.x,this.ƀiu.scrollHeight),s.eventMode="dynamic",s.addEventListener("wheel",a=>{this.ƀiu.onWheel(a.deltaY);}),n.setInteractive(true),n.ƀhu.addEventListener("wheel",a=>{this.ƀiu.onWheel(a.deltaY);}),y.afterSceneUpdateAction.subscribe(a=>this.ƀiu.update(a.delta)).attach(this),this.addChildTo=n;}scrollToTop(t){this.ƀiu.scrollToTop(),t?.instant&&this.ƀiu.jumpToTarget();}scrollToBottom(t){this.ƀiu.scrollToBottom(),t?.instant&&this.ƀiu.jumpToTarget();}};var Zs=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)},di=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.code),this.ƀfz.add(t.code),!t.repeat&&this.ƀft.trigger({key:t.key,code:t.code});}),window.addEventListener("keyup",t=>{this.ƀga.delete(t.code),this.ƀfu.trigger({key:t.key,code:t.code});}),window.addEventListener("blur",()=>{this.ƀga.clear();}),y.afterSceneUpdateAction.subscribe(()=>this.ƀfz.clear()).attachToRoot();}isKeyDown(t,e){return (e?.onlyPressedThisFrame?this.ƀfz:this.ƀga).has(t)}};di=Zs([d(),Qs("design:paramtypes",[])],di);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},to=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},te=class{static{h(this,"MouseService");}constructor(){this.ƀfi=new Variable(false),this.initialMouseMovementHappened=this.ƀfi.notifier,this.ƀjk=new Variable(Vector.zero,{notifyOnChange:true}),this.stagePosition=this.ƀjk.notifier,this.ƀip=new Variable(Vector.zero,{notifyOnChange:true}),this.screenPosition=this.ƀip.notifier,this.ƀgd=new Variable(false),this.mainButtonState=this.ƀgd.notifier,this.ƀiv=new Variable(false),this.secondaryButtonState=this.ƀiv.notifier,this.ƀjl(),window.addEventListener("pointerdown",t=>{t.button===0?this.ƀgd.value=true:t.button===2&&(this.ƀiv.value=true);},{capture:true}),window.addEventListener("pointerup",t=>{t.button===0?this.ƀgd.value=false:t.button===2&&(this.ƀiv.value=false);},{capture:true}),window.addEventListener("blur",()=>{this.ƀgd.value=false,this.ƀiv.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.ƀip.value=this.clientPositionToScreenPosition(t);}).attachToRoot(),y.afterSceneUpdateAction.subscribe(()=>{let e=w.instance.screenPositonToStagePosition(this.ƀip.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)}};te=qs([d(),to("design:paramtypes",[])],te);var eo=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},io=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},fi=class{static{h(this,"MouseTargetFocusService");}get focusedInLastFrame(){return this.ƀde}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.ƀde=false,this.ƀfw=void 0,y.beforeSceneUpdateAction.subscribe(e=>this.ƀkh(e.delta)).attachToRoot();}ƀkh(t){if(this.ƀgo){let e=this.ƀee(this.ƀgn.stagePosition.value,this.ƀgo);this.ƀhi===void 0?this.ƀhi=e:this.ƀas(e,t);}this.ƀgo=this.ƀgn.stagePosition.value;}ƀ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.ƀde=true,this.ƀfw=this.ƀgn.stagePosition.value,this.ƀgz.trigger(this.ƀfw)):(this.ƀkd+=i,this.ƀde=false);}ƀee(t,e){let i=Vector.fromTo(t,e);return Math.abs(i.x)+Math.abs(i.y)}};fi=eo([d(),io("design:paramtypes",[te])],fi);var ui=10.8,mi=10.01,tt;(function(o){o[o.Point=1]="Point",o[o.Circle=2]="Circle",o[o.Polygon=3]="Polygon",o[o.Rectangle=4]="Rectangle";})(tt||(tt={}));var u=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 W.Body({position:t.position,angle:t.angle,type:t.type});return e.shapes=t.shapes,e}};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},st=class extends K(){static{h(this,"PhysicsInternalGateway");}};st=ho([d()],st);var b=class o extends U{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(st);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=u.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 u.arePhysicsGroupsCollidable(this.ƀhn,this.ƀhp,t.ƀhn,t.ƀhp)}ƀix(t){this.ƀax=t,t.length>0&&this.ƀgt.trigger(t);}};var ee=class extends b{static{h(this,"ImmovablePhysicsEntity");}constructor(t,e){super(t,e,"static"),this.position=u.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 gi=class extends U{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 yi=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(st).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=u.arrayToVector(this.p2Body.position),this.rotation.value=new Radian(this.p2Body.angle),this.velocity.value=u.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 ot="border";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},ie=class extends K(){static{h(this,"PhysicsGateway");}};ie=fo([d()],ie);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},mo=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},v=class extends U{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=uo([ft(),mo("design:paramtypes",[Vector,Boolean,W.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},J=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}};J=xo([d()],J);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)},_e=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();}};_e=vo([d(),bo("design:paramtypes",[J])],_e);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)},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=u.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=50){return e.aabbNeedsUpdate=true,e.updateAABB(),kt.findByConvertingGridSpace(this.getAvilabilityGrid(t,r,i),u.aabbToBoundingBox(e.aabb),r)}getAvilabilityGrid(t,e,i){let r=this.ƀx.get(t,e,i);return r||(r=this.ƀbw(t,e,i),this.ƀx.set(t,e,i,r)),r}ƀbw(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.ƀdv(s,e);r.setArea(a,false);}}),r}ƀdv(t,e){let i=u.aabbToBoundingBox(t.aabb);return B.areaToGridArea(i,e)}};nt=So([d(),Po("design:paramtypes",[J,_e])],nt);var Ro=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},Co=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},Bt=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=50);let n=v.getInstanceByIDOrFail(t),a,l;Comparator.isNumber(i)?(l=b.getPhysicsInstanceOrFail(i).p2Body,a=u.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=u.aabbToBoundingBox(l.aabb),bt=B.areaToGridArea(R,s.gridCellSize);m.setArea(bt,true);}let g=zt.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=50){let n=v.getInstanceByIDOrFail(t),a;if(Comparator.isNumber(i)){let g=b.getPhysicsInstanceOrFail(i);a=u.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 Jt(l,g),n.vectorFieldCache.set(c,p);}let m=B.positionToGridPosition(e,s);return p.getDirectionToTarget(m)}};Bt=Ro([d(),Co("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},Do=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},X=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 M(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 f().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 M(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 f().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 M(l,"alpha",{duration:a,animation:S.easeIn}).animate({alpha:0}).tap(()=>l.destroy()).attach(l);}createPhysicsEntityShapeVisual(t,e,i){let r=i?.overridePosition??u.arrayToVector(t.position),s=i?.overrideRotation??new Radian(t.angle),n=i?.color??ColorHelper.blue,a=new f().displayParent(e).setPosition(r,{round:false}).setRotation(s).setAlpha(.5).attachToRoot();t.shapes.forEach(c=>{this.ƀcp(c,n).displayParent(a).attachToRoot();}),new M(a,"alpha",{duration:1e3,animation:S.easeIn}).animate({alpha:0}).tap(()=>a.destroy()).attach(a);}ƀcp(t,e){switch(t.type){case W.Shape.PARTICLE:throw new Error("Not implemented");case W.Shape.LINE:throw new Error("Not implemented");case W.Shape.PLANE:throw new Error("Not implemented");case W.Shape.CIRCLE:throw new Error("Not implemented");case W.Shape.CAPSULE:throw new Error("Not implemented");case W.Shape.BOX:throw new Error("Not implemented");case W.Shape.HEIGHTFIELD:throw new Error("Not implemented");case W.Shape.CONVEX:return this.ƀco(t,e);default:throw new Error("Not implemented")}}ƀco(t,e){let i=[t.vertices.map(r=>({x:r[0],y:r[1]}))];return E.createPolygon(i,e).toSprite()}};X=Oo([d(),Do("design:paramtypes",[nt,Bt])],X);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},_o=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},Fe=class{static{h(this,"HitTestService");}constructor(t){this.ƀjw=t;}hitTest(t,e){let i=t.world,r=b.getFromP2BodyIDOrFail(t.id),s=u.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=>u.cloneP2Body(l.p2Body)),a=false;if(n.length!==0){let l=new W.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=u.vectorToArray(e.overridePosition)),e?.overrideRotation&&(t.angle=e.overrideRotation.value);}ƀdi(t){return t.aabbNeedsUpdate=true,t.updateAABB(),t.aabb}};Fe=Go([d(),_o("design:paramtypes",[X])],Fe);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},Ve=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.ƀix(t.collisionReports.get(s)||[]);}),t.bodiesInContactWith.clear(),t.collisionReports.clear();}ƀer(t){let e=u.arrayToVector(t.velocity);e.length>ui&&(e=e.normalize(ui),t.velocity=u.vectorToArray(e)),t.angularVelocity=Math.min(Math.max(t.angularVelocity,-mi),mi);}ƀ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.ƀ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=u.arrayToVector(i.contactPointA),a=u.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=u.arrayToVector(t.normalA),i=e.multiplyNumber(-1);return {normalA:e,normalB:i}}};Ve=Vo([d()],Ve);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},No=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},Le=class extends ee{static{h(this,"BorderEntity");}constructor(t,e){super(t,e);}};Le=Lo([ft(),No("design:paramtypes",[Number,Object])],Le);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},H=1e4,Ne=class{static{h(this,"BorderService");}createBorders(t,e,i){this.ƀbq(t,new Vector(e.x/2,-H/2),new Vector(e.x+H*2,H),i),this.ƀbq(t,new Vector(e.x/2,e.y+H/2),new Vector(e.x+H*2,H),i),this.ƀbq(t,new Vector(-H/2,e.y/2),new Vector(H,e.y+H*2),i),this.ƀbq(t,new Vector(e.x+H/2,e.y/2),new Vector(H,e.y+H*2),i);}ƀbq(t,e,i,r){return new Le(t,{shapeDefinition:{materialName:ot,group:r,shapeType:tt.Rectangle,shapeData:i},position:e,rotation:Radian.get0,addInEmptySpace:false,includeOnPathfinding:true}).attachByID(t)}};Ne=jo([d()],Ne);var Wo=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},rr=new W.Material,Uo={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 W.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,rr),n.set(ot,Uo),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 W.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 W.ContactMaterial(n,rr,{friction:e.friction,restitution:e.bounciness,stiffness:e.stiffness,relaxation:e.relaxation}));});}};Gt=Wo([d()],Gt);var $o=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},ko=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},_t=class{static{h(this,"PhysicsWorldService");}constructor(t,e,i,r,s){this.ƀgi=t,this.ƀah=e,this.ƀy=i,this.ƀay=r,this.ƀhl=s;}createPhysicsWorld(t){let e=new W.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);}};_t=$o([d(),ko("design:paramtypes",[Gt,Ne,nt,Ve,J])],_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},Vt=class{static{h(this,"RayCastingService");}castClosest(t,e,i){let r=new W.RaycastResult,s=new W.Ray({mode:W.Ray.CLOSEST,from:u.vectorToArray(e.from),to:u.vectorToArray(e.to),collisionGroup:t.physicsBodyGroupToP2Group.get(i),collisionMask:t.physicsBodyGroupToP2Mask.get(i)});if(t.p2World.raycast(r,s),r.hasHit())return this.ƀbl(r,e)}castAllFirstContacts(t,e,i){let r=new Map,s=new W.Ray({mode:W.Ray.ALL,from:u.vectorToArray(e.from),to:u.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.ƀbl(n,e)):n.fraction===a.fraction&&a.isExternal()&&r.set(n.body,this.ƀbl(n,e));},"callback")});return t.p2World.raycast(new W.RaycastResult,s),Array.from(r.values())}ƀbl(t,e){let i=t.fraction,r=u.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=Jo([d()],Vt);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},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(u.vectorToArray(s),n);}};lt=Yo([d()],lt);var Xo=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},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.ƀbm(r,t.length))}ƀbm(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=u.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=Xo([d()],Lt);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},Qo=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},en=15,He=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.ƀcb(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})}ƀcb(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/en),R=i.y/(g*2+1)*2,bt=l.normalize(R),re=i.x,or=Math.pow(i.y,2);return ArrayHelper.createIntegerArray(g).forEach(pt=>{let St=R*(pt+1),vi=bt.multiplyNumber(pt+1),se=c.normalize(this.ƀel(re,or,St)),oe=t.add(vi);a.push(new Line(oe,oe.add(se))),a.push(new Line(oe,oe.add(se.multiplyNumber(-1))));let ne=t.add(vi.multiplyNumber(-1));a.push(new Line(ne,ne.add(se))),a.push(new Line(ne,ne.add(se.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}}})}ƀel(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);});});}};He=Zo([d(),Qo("design:paramtypes",[Vt,X,Lt,lt])],He);var rn=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},sn=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},We=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.ƀei(i),c=this.ƀcb(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}ƀcb(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,u.arrayToVector(n.p2Body.position)),l=a.length/e,c=i*r*l/2;this.ƀff.applyImpulse(n.p2Body,n.getHitPosition(),a,c);}});}ƀei(t){return t>100?Math.floor(t*.3):Math.floor(t*.26+4)}};We=rn([d(),sn("design:paramtypes",[Vt,X,Lt,lt])],We);var ln=function(o,t,e,i){var r=arguments.length,s=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,i);else for(var a=o.length-1;a>=0;a--)(n=o[a])&&(s=(r<3?n(s):r>3?n(t,e,s):n(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s},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=ln([d()],Nt);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},pn=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},wi=class{static{h(this,"PhysicsController");}constructor(t,e,i,r,s,n,a,l){this.ƀhs=t,this.ƀhh=e,this.ƀjw=i,this.ƀda=r,this.ƀct=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.ƀda.createExplosion(t,e,i,r,s,n)}createElipticExplosion(t,e,i,r,s,n,a){return this.ƀct.createElipticExplosion(t,e,i,r,s,n,a)}printPathfindingTestGrid(t,e,i,r,s,n=50){this.ƀjw.printPathfindingTestGrid(t,e,i,r,s,n);}};wi=cn([Z(ie),pn("design:paramtypes",[_t,Bt,X,We,He,Fe,Nt,lt])],wi);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},Ue=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 tt.Point:return this.ƀbs(n,void 0,i,r,e.shapeDefinition.group,s);case tt.Circle:return this.ƀbs(n,e.shapeDefinition.shapeData,i,r,e.shapeDefinition.group,s);case tt.Polygon:return this.ƀca(n,e.shapeDefinition.shapeData,i,r,e.shapeDefinition.group,s);case tt.Rectangle:return this.ƀcc(n,e.shapeDefinition.shapeData,i,r,e.shapeDefinition.group,s);default:{e.shapeDefinition.shapeType;throw new Error(`Unexpected case! "${e.shapeDefinition.shapeType}"`)}}}ƀbs(t,e,i,r,s,n){let a=new W.Circle({collisionGroup:t.physicsBodyGroupToP2Group.get(s),collisionMask:t.physicsBodyGroupToP2Mask.get(s),radius:e});a.material=i;let l=new W.Body({type:n==="dynamic"?W.Body.DYNAMIC:W.Body.STATIC,mass:r.density,damping:r.velocityDrag,angularDamping:r.rotationalDrag});return l.addShape(a),l}ƀca(t,e,i,r,s,n){let a=t.physicsBodyGroupToP2Group.get(s),l=t.physicsBodyGroupToP2Mask.get(s),c=e.map(g=>new W.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 W.Body({type:n==="dynamic"?W.Body.DYNAMIC:W.Body.STATIC,mass:p,damping:r.velocityDrag,angularDamping:r.rotationalDrag});return c.forEach(g=>m.addShape(g)),m.setDensity(r.density),m}ƀcc(t,e,i,r,s,n){let a=new W.Box({width:e.x,height:e.y,collisionGroup:t.physicsBodyGroupToP2Group.get(s),collisionMask:t.physicsBodyGroupToP2Mask.get(s)});a.material=i;let l=e.x*e.y,c=new W.Body({type:n==="dynamic"?W.Body.DYNAMIC:W.Body.STATIC,mass:l,damping:r.velocityDrag,angularDamping:r.rotationalDrag});return c.addShape(a),c.setDensity(r.density),c}};Ue=dn([d()],Ue);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},un=function(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)},xi=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)}};xi=fn([Z(st),un("design:paramtypes",[_t,Gt,Ue,Nt,J])],xi);export{Ci as AnimationFlicker,$ as AnimationInterpolationFunctions,S as Animations,C as AnimationsCompletionHandlingType,M as Animator,ot as BORDER_MATERIAL_NAME,_ as BardLegendsHardReset,Tt as BlendMode,Xt as Camera,it as CameraGateway,kt as ClosestAvailableSpaceHelper,f as Container,Pt as ContainerEventType,Z as ControllerDecorator,ze as Cursor,O as DEFAULT_SHADER_RESOLUTION,Qe as DeltaTime,ai as DisplayObjectArray,U as Entity,ft as EntityDecorator,Di as FadeInContent,ye as FadeInStateAnimation,rt as FocusingAnimation,w as Game,K as Gateway,E as Graphics,ee as ImmovablePhysicsEntity,di as KeyboardService,li as MenuEntity,Qt as MenuUI,ci as MenuView,te as MouseService,fi as MouseTargetFocusService,gi as MovableEntity,yi as MovablePhysicsEntity,zt as PathFinder,b as PhysicsEntity,ie as PhysicsGateway,tt as PhysicsShapeType,si as Placeholder,Ht as PositionConversionHelper,mi as ROTATIONAL_SPEED_LIMIT,F as ReAnimateHandlingType,oi as RichText,ui as SPEED_LIMIT,ae as Scene,wr as SceneDecorator,pi as ScrollAreaUI,Q as ScrollDirection,yt as ScrollMaskUI,T as Service,d as ServiceDecorator,ut as SingletonEntity,Li as SlideInContent,Ze as SlideInContentByIndex,be as SlideStateAnimation,q as SlideStateAnimationState,z as Sprite,ge as StateAnimation,Zt as Text,ni as UpdatableContainer,y as UpdateCycle,Jt as VectorFieldPathFinder,xt as VectorSet,dt as View,ke as ViewDecorator};