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