bard-legends-framework 1.11.5 → 1.12.1
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/AGENTS.md +52 -5
- package/bin/cli.mjs +12 -0
- package/dist/electron-main.d.mts +18 -0
- package/dist/electron-main.d.ts +18 -0
- package/dist/electron-main.js +1 -0
- package/dist/electron-main.mjs +1 -0
- package/dist/electron-preload.d.mts +9 -0
- package/dist/electron-preload.d.ts +9 -0
- package/dist/electron-preload.js +1 -0
- package/dist/electron-preload.mjs +1 -0
- package/dist/index.d.mts +41 -15
- package/dist/index.d.ts +41 -15
- package/dist/index.js +3 -3
- package/dist/index.mjs +3 -3
- package/electron-forge.mjs +37 -0
- package/package.json +51 -13
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
'use strict';var actionsLib=require('actions-lib');require('reflect-metadata');var helpersLib=require('helpers-lib'),W=require('pixi.js');require('pixi.js/advanced-blend-modes'),require('@pixi/layout');var scriptEngineLib=require('script-engine-lib'),components=require('@pixi/layout/components'),X=require('p2');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var W__namespace=/*#__PURE__*/_interopNamespace(W);var X__default=/*#__PURE__*/_interopDefault(X);var Tr=Object.defineProperty;var h=(n,t)=>Tr(n,"name",{value:t,configurable:true});function ht(){return class{static{h(this,"GatewayBase");}}}h(ht,"Gateway");function be(n,t){let e=n.prototype,i=Object.getPrototypeOf(t),s=[];for(let r of Reflect.ownKeys(i)){if(typeof r!="string"||r==="constructor")continue;let o=t[r];if(typeof o=="function"){if(Object.prototype.hasOwnProperty.call(e,r))throw new Error(`Gateway "${n.name}": method "${r}" is already registered by another controller.`);e[r]=o.bind(t),s.push(r);}}return s}h(be,"bindControllerToGateway");var T=class{static{h(this,"BardLegendsTestingHelper");}static{this.ƀff=new actionsLib.Action;}static{this.onHardReset=this.ƀff.notifier;}static{this.ƀhc=[];}static hardReset(){actionsLib.ActionLib.hardReset();for(let t of this.ƀhc)for(let e of t.keys)delete t.gatewayPrototype[e];this.ƀhc=[],this.ƀff.trigger();}static bindMockControllerToGateway(t,e){let i=be(t,e);this.ƀhc.push({gatewayPrototype:t.prototype,keys:i});}};function u(){return function(n){E.ƀha.set(n,{paramtypes:E.ƀep(n)});}}h(u,"ServiceDecorator");var E=class n{static{h(this,"Service");}static{this.ƀha=new WeakMap;}static{this.ƀjv=new Map;}static get(t){let e=this.ƀjv.get(t);if(!e){let i=n.ƀha.get(t);if(!i)throw new Error(`Service: service class is not decorated by @ServiceDecorator(), class: "${t.name}"`);let s=this.ƀjk(i.paramtypes);e=new t(...s),this.ƀjv.set(t,e);}return e}static ƀep(t){let e=Reflect.getMetadata("design:paramtypes",t)||[];return e.some(i=>!i)&&console.error(`Circular dependency: ${t.name}`),e.some(i=>i.name==="Object")&&console.error(`Some injected parameters are failed to resolve. Check if it is imported as value, if not remove the "type" keyword. Class: "${t.name}"`),e}static ƀjk(t){return t.map(i=>{if(i&&n.ƀha.has(i))return this.get(i);throw new Error(`Injected parameter has to be decorated with @ServiceDecorator(), class: "${i.name}"`)})}};T.onHardReset.subscribe(()=>{E.ƀjv=new Map;}).attachToRoot();function lt(n){return function(t){let e=E.ƀep(t);if(e.some(i=>!i))console.error(`Circular dependency: ${t.name}`);else {let i=E.ƀjk(e);i.some(r=>r===void 0)&&console.error(i,e,t.name);let s=new t(...i);be(n,s);}}}h(lt,"ControllerDecorator");var g=class n{static{h(this,"UpdateCycle");}static{this.ƀae=new actionsLib.Action;}static{this.beforeSceneUpdateAction=this.ƀae.notifier;}static{this.ƀjo=new actionsLib.Action;}static{this.sceneUpdateAction=this.ƀjo.notifier;}static{this.ƀf=new actionsLib.Action;}static{this.afterSceneUpdateAction=this.ƀf.notifier;}static{this.ƀlm=0;}static{this.ƀlu=void 0;}static wait(t){let e=this.ƀlm+t;return actionsLib.SingleEvent.create(i=>{let s=n.beforeSceneUpdateAction.subscribe(r=>{r.time>=e&&i();}).attachToRoot();return ()=>s.destroy()})}static registerUpdateModifier(t){if(!this.ƀlu)this.ƀlu=t;else throw new Error("UpdateCycle: There can only one update modifier!")}static cleanUpdateModifier(){this.ƀlu=void 0;}static triggerUpdateTick(t){this.ƀlu&&(t=this.ƀlu(this.ƀlm,t)),this.ƀlm+=t,this.ƀgg=t,t>0&&(n.ƀae.trigger({time:this.ƀlm,delta:t}),n.ƀjo.trigger({time:this.ƀlm,delta:t}),n.ƀf.trigger({time:this.ƀlm,delta:t}));}static get lastDelta(){return this.ƀgg}static{this.ƀgg=0;}};T.onHardReset.subscribe(()=>{g.ƀae.clear(),g.ƀjo.clear(),g.ƀf.clear(),g.ƀlu=void 0,g.ƀlm=0;}).attachToRoot();var D=class n{static{h(this,"EntityStoreHelper");}static{this.ƀba=new Map;}static{this.ƀji=new Set;}static registerEntityClass(t){this.ƀji.add(t),this.ƀba.set(t.id,new Map);}static registerEntity(t){let e=this.ƀba.get(t.classID);if(!e)throw new Error(`EntityStoreHelper: No entity class is found. Be sure that entity is decorated with EntityDecorator! Name: "${t.constructor.name}"`);e.set(t.id,t);}static unregisterEntity(t,e){let i=t.id;this.ƀba.get(i)?.delete(e);}static getEntity(t,e){return this.ƀba.get(t.id)?.get(e)}static getSingleton(t){let e=n.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.ƀba.get(t.id);return Array.from(e.values())}};T.onHardReset.subscribe(()=>{D.ƀba.clear();for(let n of D.ƀji)D.ƀba.set(n.id,new Map);}).attachToRoot();function oi(n){return function(t){Z.ƀha.set(t,{paramtypes:E.ƀep(t),viewInstances:new Map,entity:n.entity}),ft.registerView(t,n.entity);}}h(oi,"ViewDecorator");var Z=class n extends actionsLib.IDAttachable{static{h(this,"View");}static{this.ƀha=new WeakMap;}static getInstance(t){let e=n.ƀha.get(this);if(!(!e||!e.entity.validateID(t)))return e.viewInstances.get(t)}static getInstanceOrFail(t){let e=n.ƀha.get(this);if(!e||!e.entity.validateID(t))throw new Error(`View: getInstance is called with entity id: "${t}", that is not belonging to the class: "${e?.entity}"`);let i=e.viewInstances.get(t);if(!i)throw new Error(`View: getInstanceOrFail is called with entity id: "${t}", that is not found!`);return i}constructor(){super(),this.update=()=>{},this.attachToRoot(),this.ƀdh=ft.entityID,this.ƀeu().set(this.ƀdh,this);}destroy(){this.destroyed||(super.destroy(),this.ƀeu().delete(this.ƀdh));}ƀeu(){let t=n.ƀha.get(this.constructor);if(!t)throw new Error(`View: view class is not decorated by @ViewDecorator(), class: "${this.constructor.name}"`);return t.viewInstances}};T.onHardReset.subscribe(()=>{Z.ƀha=new WeakMap;}).attachToRoot();var ft=class n{static{h(this,"EntityViewsHelper");}static{this.ƀmd=new Map;}static registerView(t,e){n.ƀmd.has(e)||n.ƀmd.set(e,[]);let i=n.ƀmd.get(e);i&&i.push(t),D.getEntities(e).forEach(r=>{this.ƀcm(r,t);});}static ƀcm(t,e){try{let i=Z.ƀha.get(e);if(!i)throw new Error(`View: view class is not decorated by @ViewDecorator(), class: "${e.name}"`);let s=E.ƀjk(i.paramtypes.slice(1));n.entityID=t.id;let r=new e(t,...s);t.destroyed?r.destroy():t.ƀmc.ƀme.push(r);}catch(i){console.error(i);}}constructor(t){this.ƀdg=t,this.ƀme=[];}createViews(){if(!this.ƀdg.destroyed){let t=n.ƀmd.get(this.ƀdg.constructor);t&&t.forEach(e=>{n.ƀcm(this.ƀdg,e);});}}updateViews(t,e){for(let i=0;i<this.ƀme.length;i++){let s=this.ƀme[i];s.destroyed||s.update(t,e);}}destroyViews(){this.ƀme.forEach(t=>{t.destroy();});}};T.onHardReset.subscribe(()=>{ft.ƀmd=new Map;}).attachToRoot();function It(){return function(n){D.registerEntityClass(n);}}h(It,"EntityDecorator");var Q=class extends actionsLib.IDAttachable{static{h(this,"Entity");}static getInstanceByID(t){if(t)return D.getEntity(this,t)}static getInstanceByIDOrFail(t){let e=D.getEntity(this,t);if(!e)throw new Error(`Entity: entity is not found! Name: "${this.name}", id: "${t}"`);return e}static getEntities(){return D.getEntities(this)}constructor(){super(),this.ƀmc=new ft(this),D.registerEntity(this),g.sceneUpdateAction.subscribe(t=>{this.destroyed||(this.ƀls(t.time,t.delta),this.ƀmc.updateViews(t.time,t.delta));}).attach(this);}destroy(){this.destroyed||(this.ƀmc.destroyViews(),D.unregisterEntity(this.constructor,this.id),super.destroy());}attach(t){return super.attach(t),this.ƀmc.createViews(),this}attachByID(t){return super.attachByID(t),this.ƀmc.createViews(),this}attachToRoot(){return super.attachToRoot(),this.ƀmc.createViews(),this}ƀls(t,e){}};var dt=class n extends Q{static{h(this,"SingletonEntity");}static{this.ƀcn=new WeakMap;}static ƀec(t){let e=n.ƀcn.get(t);return e||(e=new actionsLib.SingleAction,n.ƀcn.set(t,e)),e}static ƀlr(t){n.ƀcn.delete(t);}static getInstanceAsync(){let t=D.getSingleton(this);return t&&!t.destroyed?actionsLib.SingleEvent.instant(t):n.ƀec(this).toSingleEvent()}static continuesSubscription(){let t=h((e,i)=>{this.getInstanceAsync().tap(r=>{e({type:"open",value:r}),r.onDestroy().tap(()=>{e({type:"close",value:r}),t(e,i);}).attach(i);}).attach(i);},"subscribe");return actionsLib.Sequence.create((e,i)=>t(e,i.attachable))}static getInstance(){return D.getSingleton(this)}static getInstanceOrFail(){return D.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(()=>n.ƀlr(this.constructor)).attachToRoot(),n.ƀec(this.constructor).resolve(this);}};T.onHardReset.subscribe(()=>{dt.ƀcn=new WeakMap;}).attachToRoot();function Vr(){return function(n){return Vt.ƀha.set(n,{paramtypes:E.ƀep(n)}),n}}h(Vr,"SceneDecorator");var Vt=class n extends actionsLib.IDAttachable{static{h(this,"Scene");}static{this.ƀha=new WeakMap;}static{this.ƀfz=new actionsLib.Variable(false);}static{this.isTransitioning=this.ƀfz.notifier;}static{this.ƀb=new actionsLib.Variable(void 0);}static{this.activeScene=this.ƀb.notifier;}static getActiveSceneOrFail(){if(!n.ƀb.value)throw new Error("Scene: getActiveSceneOrFail is called when there is no active scene!");return n.ƀb.value}static cancelActiveScene(){return n.ƀb.value?n.ƀb.value.ƀj("cancel"):actionsLib.SingleEvent.instant()}static isActive(){return n.ƀb.value instanceof this}static getInstance(){return n.ƀb.value instanceof this?n.ƀb.value:void 0}static getInstanceOrFail(){if(!n.ƀb.value)throw new Error("Scene: getInstance is called when there is no active scene!");if(!(n.ƀb.value instanceof this))throw new Error(`Scene: getInstance is called while "${this.name}" was not the active scene. Current scene is: "${n.ƀb.value}"!`);return n.ƀb.value}static open(...t){if(n.ƀfz.value)throw new Error("Scene: you cannot open a scene while a scene is transitioning!");if(n.ƀb.value)throw new Error("Scene: you cannot open a scene while there is already another active scene!");let e=n.ƀha.get(this);if(!e)throw new Error(`Scene: scene class is not decorated by @SceneDecorator(), class: "${this.name}"`);let i=t[0];n.ƀfz.value=true;let s=E.ƀjk(e.paramtypes),r=new this(...s).attachToRoot();return n.ƀb.set(r),r.init(i).map(()=>(n.ƀfz.value=false,r)).chainToRoot()}constructor(){super(),this.ƀhm=new actionsLib.SingleAction,this.onClose=this.ƀhm.notifier,g.sceneUpdateAction.subscribe(t=>this.update(t.time,t.delta)).attach(this);}close(...t){if(n.ƀb.value!==this)throw new Error("Internal Error: Scene instance is accessed while it is not the active scene!");if(n.ƀfz.value)throw new Error("Scene: you cannot close a scene while a scene is transitioning!");n.ƀfz.value=true;let e=t[0];return this.ƀj(e).map(()=>(this.ƀhm.resolve(e),e)).chainToRoot()}ƀj(t){return this.prepareToClose(t).tap(()=>{super.destroy(),n.ƀb.set(void 0),n.ƀfz.value=false;}).chainToRoot()}destroy(){throw new Error('To close a scene use the "close()" function')}};T.onHardReset.subscribe(()=>{Vt.ƀha=new WeakMap,Vt.ƀb.set(void 0);}).attachToRoot();var U=class{static{h(this,"AnimationInterpolationFunctions");}static boomerangTime(t){return 1-Math.abs(t-.5)*2}static lineer(t){return t}static easeIn(t){return Math.pow(t,2)}static easeOut(t){return 1-Math.pow(1-t,2)}static easeInCubic(t){return Math.pow(t,3)}static easeOutCubic(t){return 1-Math.pow(1-t,3)}static easeInOut(t){return t<.5?2*t*t:(t-=1,1-2*t*t)}static easeInOutCubic(t){let e=2*t-2;return t<.5?4*Math.pow(t,3):(t-1)*Math.pow(e,2)+1}static blink(t){return t>.5?1:0}},Nr=class{static{h(this,"AnimationLineer");}start(){}multiplierFunction(t){return U.lineer(t)}},Fr=class{static{h(this,"AnimationEaseIn");}start(){}multiplierFunction(t){return U.easeIn(t)}},Lr=class{static{h(this,"AnimationEaseOut");}start(){}multiplierFunction(t){return U.easeOut(t)}},Hr=class{static{h(this,"AnimationEaseInOut");}start(){}multiplierFunction(t){return U.easeInOut(t)}},jr=class{static{h(this,"AnimationEaseInCubic");}start(){}multiplierFunction(t){return U.easeInCubic(t)}},Ur=class{static{h(this,"AnimationEaseOutCubic");}start(){}multiplierFunction(t){return U.easeOutCubic(t)}},Wr=class{static{h(this,"AnimationEaseInOutCubic");}start(){}multiplierFunction(t){return U.easeInOutCubic(t)}},$r=class{static{h(this,"AnimationBlink");}start(){}multiplierFunction(t){return U.blink(t)}},Fi=class{static{h(this,"AnimationFlicker");}start(){this.ƀln=new Array(10).fill(0),helpersLib.Random.integerBetween(0,9),this.ƀln[helpersLib.Random.integerBetween(0,9)]=Math.random(),Math.random()<.3&&(helpersLib.Random.integerBetween(0,9),this.ƀln[helpersLib.Random.integerBetween(0,9)]=Math.random()),Math.random()<.2&&(helpersLib.Random.integerBetween(0,9),this.ƀln[helpersLib.Random.integerBetween(0,9)]=Math.random());}multiplierFunction(t){let e=Math.floor(t*10);return this.ƀln[e]}},b=class{static{h(this,"Animations");}static{this.lineer=new Nr;}static{this.easeIn=new Fr;}static{this.easeOut=new Lr;}static{this.easeInOut=new Hr;}static{this.easeInCubic=new jr;}static{this.easeOutCubic=new Ur;}static{this.easeInOutCubic=new Wr;}static{this.blink=new $r;}};exports.ReAnimateHandlingType=void 0;(function(n){n[n.ThrowError=1]="ThrowError",n[n.IgnoreNewAnimation=2]="IgnoreNewAnimation",n[n.CompletePrevious=3]="CompletePrevious";})(exports.ReAnimateHandlingType||(exports.ReAnimateHandlingType={}));exports.AnimationsCompletionHandlingType=void 0;(function(n){n[n.ReturnToOriginal=1]="ReturnToOriginal",n[n.StayInCurrentState=2]="StayInCurrentState",n[n.JumpToEnd=3]="JumpToEnd",n[n.Loop=4]="Loop";})(exports.AnimationsCompletionHandlingType||(exports.AnimationsCompletionHandlingType={}));var O=class n{static{h(this,"Animator");}static{this.ƀl=new WeakMap;}static ƀdw(t){let e=n.ƀl.get(t);return e||(e=new helpersLib.MapToWeakRefs,n.ƀl.set(t,e)),e}get animating(){return this.ƀhv!==void 0}get target(){return this.ƀld}get value(){return this.ƀlx||(this.ƀlx=new actionsLib.Variable(this.ƀld)),this.ƀlx.notifier}get paused(){return this.ƀid!==void 0}set paused(t){this.ƀid=t?true:void 0;}constructor(t,e,i){this.ƀga=false,this.ƀki=false,this.ƀld=t,this.ƀhx={duration:200,animation:b.lineer,reAnimateHandling:exports.ReAnimateHandlingType.ThrowError,completionHandling:exports.AnimationsCompletionHandlingType.StayInCurrentState,...i},this.ƀm=helpersLib.Comparator.isArray(e)?e:[e],this.ƀgn(t,this.ƀm);}animate(t,e){let i={...this.ƀhx,...e},s=this.ƀhv;if(this.ƀhv)switch(i.reAnimateHandling){case exports.ReAnimateHandlingType.ThrowError:throw new Error("Animator: new animation triggered while another is not complete yet.");case exports.ReAnimateHandlingType.IgnoreNewAnimation:return actionsLib.SingleEvent.instant().notIdle();case exports.ReAnimateHandlingType.CompletePrevious:this.ƀjx(i.completionHandling,this.ƀhv.ƀiz,true);break;default:{throw new Error}}return actionsLib.SingleEvent.create(o=>{this.ƀga&&(this.ƀki=true);let a={};for(let c of this.ƀm)a[c]={ƀkx:this.ƀld[c],ƀlg:t[c]};let l={ƀdb:i.duration,ƀdc:0,ƀiz:a,ƀbl:i.completionHandling,ƀn:i.animation,ƀbk:o};if(l.ƀbl!==exports.AnimationsCompletionHandlingType.Loop&&this.ƀfx(l)){this.ƀhv=void 0,o(),s?.ƀbk(),this.ƀbb();return}return l.ƀn.start(),this.ƀhv=l,this.ƀdf(),s?.ƀbk(),()=>{this.ƀhv===l&&(this.ƀld instanceof actionsLib.Attachable&&this.ƀld.destroyed||this.ƀjx(l.ƀbl,l.ƀiz,true),this.ƀhv=void 0,this.ƀbb());}}).notIdle()}set(t){this.ƀmk(e=>t[e]),this.ƀhv?.ƀbk();}completeAnimation(t){if(this.ƀhv){t=t??this.ƀhv.ƀbl,this.ƀjx(t,this.ƀhv.ƀiz,true);let e=this.ƀhv.ƀbk;this.ƀhv=void 0,e();}}ƀdf(){this.ƀlt||(this.ƀlt=g.beforeSceneUpdateAction.subscribe(t=>{if(!this.ƀid){this.ƀga=true;try{let e=this.ƀhv;if(!e)return;if(e.ƀdc+=t.delta,e.ƀdc>=e.ƀdb)if(e.ƀbl===exports.AnimationsCompletionHandlingType.Loop)e.ƀdc%=e.ƀdb,e.ƀn.start();else {this.ƀjx(e.ƀbl,e.ƀiz,!1),this.ƀhv=void 0,e.ƀbk(),this.ƀbb();return}let i=e.ƀn.multiplierFunction(e.ƀdc/e.ƀdb);this.ƀmk(s=>{let r=e.ƀiz[s];return (r.ƀlg-r.ƀkx)*i+r.ƀkx});}finally{this.ƀga=false,this.ƀki&&(this.ƀki=false,this.ƀct(),this.ƀdf());}}}).attachToRoot());}ƀfx(t){return this.ƀm.every(e=>this.ƀld[e]===t.ƀiz[e].ƀlg)}ƀjx(t,e,i){switch(t){case exports.AnimationsCompletionHandlingType.ReturnToOriginal:case exports.AnimationsCompletionHandlingType.Loop:this.ƀmk(s=>e[s].ƀkx);break;case exports.AnimationsCompletionHandlingType.JumpToEnd:this.ƀmk(s=>e[s].ƀlg);break;case exports.AnimationsCompletionHandlingType.StayInCurrentState:i||this.ƀmk(s=>e[s].ƀlg);break;default:{throw new Error}}}ƀmk(t){let e=false;for(let i of this.ƀm){let s=t(i);this.ƀld[i]!==s&&(e=true,this.ƀld[i]=s);}e&&this.ƀlx?.set(this.ƀld);}ƀbb(){this.ƀhv||this.ƀct();}ƀct(){this.ƀlt?.destroy(),this.ƀlt=void 0;}ƀgn(t,e){let i=n.ƀdw(t);for(let s of e){if(i.has(s))throw new Error(`Animator: target property is already animated! Target: "${JSON.stringify(t,void 0,2)}", Property: "${s}"`);i.set(s,this);}}};var Pe=class extends actionsLib.IDAttachable{static{h(this,"DisplayObjectAttributes");}constructor(t){super(),this.ƀir=t,this.ƀhb=false,this.ƀdo=false,this.ƀjm=1,this.ƀx=1;}setPosition(t,e){return e?.holdFrom&&(t=t.subtract(this.ƀej(e.holdFrom))),e?.round!==false&&(t=t.round({rollHalfsDown:true})),this.position=t,this}get position(){return new helpersLib.Vector(this.ƀir.x,this.ƀir.y)}set position(t){this.ƀir.x=t.x,this.ƀir.y=t.y;}get x(){return this.ƀir.x}set x(t){this.ƀir.x=t;}get y(){return this.ƀir.y}set y(t){this.ƀir.y=t;}setRotation(t){return this.rotation=t,this}get rotation(){return new helpersLib.Radian(this.ƀir.rotation)}set rotation(t){this.ƀir.rotation=t.value;}get rotationValue(){return this.ƀir.rotation}set rotationValue(t){this.ƀir.rotation=t;}setAlpha(t){return this.alpha=t,this}get alpha(){return this.ƀir.alpha}set alpha(t){this.ƀir.alpha=t;}setMirror(t=false){return this.mirror=t,this}get mirror(){return this.ƀhb}set mirror(t){this.ƀhb=t,this.ƀlv();}setFlip(t=false){return this.flip=t,this}get flip(){return this.ƀdo}set flip(t){this.ƀdo=t,this.ƀlv();}setScale(t){return this.scale=t,this}get scale(){return this.ƀjm}set scale(t){this.ƀjm=t,this.ƀlv();}setAspectRatio(t){return this.aspectRatio=t,this}get aspectRatio(){return this.ƀx}set aspectRatio(t){this.ƀx=t,this.ƀlv();}ƀlv(){let t=this.ƀjm,e=this.ƀjm;this.ƀx<1?t*=this.ƀx:this.ƀx>1&&(e/=this.ƀx),this.ƀhb&&(t*=-1),this.ƀdo&&(e*=-1),this.ƀu(t,e);}};var k=2;var Se=class{static{h(this,"GaussianValuesHelper");}static ƀdu(t,e){let i=e*e,s=1/(helpersLib.PI_360*i),r=-(t*t)/(2*i);return s*Math.exp(r)}static getValuesForLinearSamplingPascal(t){let e=t*2,i=Math.pow(2,e),s=.005*i,r=helpersLib.NumberHelper.pascalTriangleRow(e).slice(t).filter(l=>{if(l<s)i-=l*2;else return true}),o=1/i,a=r.map(l=>l*o);return this.ƀbw(a)}static getValuesForLinearSamplingGauss(t){if(t===0)return [{offset:0,multiplier:1}];if(t===1)return [{offset:0,multiplier:.5},{offset:1,multiplier:.25}];{let e=helpersLib.ArrayHelper.createIntegerArray(Math.ceil(t*.75)).map(s=>this.ƀdu(s,t*.4)),i=e.reduce((s,r)=>s+r,0);return i=i*2-e[0],e=e.map(s=>s/i),this.ƀbw(e)}}static ƀbw(t){let e=[{offset:0,multiplier:t[0]}];for(let i=1;i<t.length-1;i+=2){let s=t[i]+t[i+1],r=i+t[i+1]/s;e.push({offset:r,multiplier:s});}if(t.length%2===0){let i=t[t.length-1],s=t.length-1;e.push({offset:s,multiplier:i});}return e}};var Hi=class ji extends W__namespace.Filter{static{h(this,"BlurFilterPass");}static ƀed(t,e){let i=e?"uInputPixel.z":"uInputPixel.w",s=`
|
|
1
|
+
'use strict';var actionsLib=require('actions-lib'),helpersLib=require('helpers-lib'),W=require('pixi.js');require('pixi.js/advanced-blend-modes'),require('reflect-metadata'),require('@pixi/layout');var scriptEngineLib=require('script-engine-lib'),components=require('@pixi/layout/components'),X=require('p2');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var W__namespace=/*#__PURE__*/_interopNamespace(W);var X__default=/*#__PURE__*/_interopDefault(X);var Rr=Object.defineProperty;var h=(n,t)=>Rr(n,"name",{value:t,configurable:true});function ht(){return class{static{h(this,"GatewayBase");}}}h(ht,"Gateway");function be(n,t){let e=n.prototype,i=Object.getPrototypeOf(t),s=[];for(let r of Reflect.ownKeys(i)){if(typeof r!="string"||r==="constructor")continue;let o=t[r];if(typeof o=="function"){if(Object.prototype.hasOwnProperty.call(e,r))throw new Error(`Gateway "${n.name}": method "${r}" is already registered by another controller.`);e[r]=o.bind(t),s.push(r);}}return s}h(be,"bindControllerToGateway");var T=class{static{h(this,"BardLegendsTestingHelper");}static{this.ƀfk=new actionsLib.Action;}static{this.onHardReset=this.ƀfk.notifier;}static{this.ƀhh=[];}static hardReset(){actionsLib.ActionLib.hardReset();for(let t of this.ƀhh)for(let e of t.keys)delete t.gatewayPrototype[e];this.ƀhh=[],this.ƀfk.trigger();}static bindMockControllerToGateway(t,e){let i=be(t,e);this.ƀhh.push({gatewayPrototype:t.prototype,keys:i});}};var w=class n{static{h(this,"UpdateCycle");}static{this.ƀae=new actionsLib.Action;}static{this.beforeSceneUpdateAction=this.ƀae.notifier;}static{this.ƀjx=new actionsLib.Action;}static{this.sceneUpdateAction=this.ƀjx.notifier;}static{this.ƀf=new actionsLib.Action;}static{this.afterSceneUpdateAction=this.ƀf.notifier;}static{this.ƀly=0;}static{this.ƀmg=void 0;}static wait(t){let e=this.ƀly+t;return actionsLib.SingleEvent.create(i=>{let s=n.beforeSceneUpdateAction.subscribe(r=>{r.time>=e&&i();}).attachToRoot();return ()=>s.destroy()})}static registerUpdateModifier(t){if(!this.ƀmg)this.ƀmg=t;else throw new Error("UpdateCycle: There can only one update modifier!")}static cleanUpdateModifier(){this.ƀmg=void 0;}static triggerUpdateTick(t){this.ƀmg&&(t=this.ƀmg(this.ƀly,t)),this.ƀly+=t,this.ƀgl=t,t>0&&(n.ƀae.trigger({time:this.ƀly,delta:t}),n.ƀjx.trigger({time:this.ƀly,delta:t}),n.ƀf.trigger({time:this.ƀly,delta:t}));}static get lastDelta(){return this.ƀgl}static{this.ƀgl=0;}};T.onHardReset.subscribe(()=>{w.ƀae.clear(),w.ƀjx.clear(),w.ƀf.clear(),w.ƀmg=void 0,w.ƀly=0;}).attachToRoot();function u(){return function(n){E.ƀhf.set(n,{paramtypes:E.ƀet(n)});}}h(u,"ServiceDecorator");var E=class n{static{h(this,"Service");}static{this.ƀhf=new WeakMap;}static{this.ƀke=new Map;}static get(t){let e=this.ƀke.get(t);if(!e){let i=n.ƀhf.get(t);if(!i)throw new Error(`Service: service class is not decorated by @ServiceDecorator(), class: "${t.name}"`);let s=this.ƀjr(i.paramtypes);e=new t(...s),this.ƀke.set(t,e);}return e}static ƀet(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 ƀjr(t){return t.map(i=>{if(i&&n.ƀhf.has(i))return this.get(i);throw new Error(`Injected parameter has to be decorated with @ServiceDecorator(), class: "${i.name}"`)})}};T.onHardReset.subscribe(()=>{E.ƀke=new Map;}).attachToRoot();function lt(n){return function(t){let e=E.ƀet(t);if(e.some(i=>!i))console.error(`Circular dependency: ${t.name}`);else {let i=E.ƀjr(e);i.some(r=>r===void 0)&&console.error(i,e,t.name);let s=new t(...i);be(n,s);}}}h(lt,"ControllerDecorator");var D=class n{static{h(this,"EntityStoreHelper");}static{this.ƀba=new Map;}static{this.ƀjp=new Set;}static registerEntityClass(t){this.ƀjp.add(t),this.ƀba.set(t.id,new Map);}static registerEntity(t){let e=this.ƀba.get(t.classID);if(!e)throw new Error(`EntityStoreHelper: No entity class is found. Be sure that entity is decorated with EntityDecorator! Name: "${t.constructor.name}"`);e.set(t.id,t);}static unregisterEntity(t,e){let i=t.id;this.ƀba.get(i)?.delete(e);}static getEntity(t,e){return this.ƀba.get(t.id)?.get(e)}static getSingleton(t){let e=n.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.ƀba.get(t.id);return Array.from(e.values())}};T.onHardReset.subscribe(()=>{D.ƀba.clear();for(let n of D.ƀjp)D.ƀba.set(n.id,new Map);}).attachToRoot();function oi(n){return function(t){Z.ƀhf.set(t,{paramtypes:E.ƀet(t),viewInstances:new Map,entity:n.entity}),ft.registerView(t,n.entity);}}h(oi,"ViewDecorator");var Z=class n extends actionsLib.IDAttachable{static{h(this,"View");}static{this.ƀhf=new WeakMap;}static getInstance(t){let e=n.ƀhf.get(this);if(!(!e||!e.entity.validateID(t)))return e.viewInstances.get(t)}static getInstanceOrFail(t){let e=n.ƀhf.get(this);if(!e||!e.entity.validateID(t))throw new Error(`View: getInstance is called with entity id: "${t}", that is not belonging to the class: "${e?.entity}"`);let i=e.viewInstances.get(t);if(!i)throw new Error(`View: getInstanceOrFail is called with entity id: "${t}", that is not found!`);return i}constructor(){super(),this.update=()=>{},this.attachToRoot(),this.ƀdj=ft.entityID,this.ƀez().set(this.ƀdj,this);}destroy(){this.destroyed||(super.destroy(),this.ƀez().delete(this.ƀdj));}ƀez(){let t=n.ƀhf.get(this.constructor);if(!t)throw new Error(`View: view class is not decorated by @ViewDecorator(), class: "${this.constructor.name}"`);return t.viewInstances}};T.onHardReset.subscribe(()=>{Z.ƀhf=new WeakMap;}).attachToRoot();var ft=class n{static{h(this,"EntityViewsHelper");}static{this.ƀmp=new Map;}static registerView(t,e){n.ƀmp.has(e)||n.ƀmp.set(e,[]);let i=n.ƀmp.get(e);i&&i.push(t),D.getEntities(e).forEach(r=>{this.ƀcm(r,t);});}static ƀcm(t,e){try{let i=Z.ƀhf.get(e);if(!i)throw new Error(`View: view class is not decorated by @ViewDecorator(), class: "${e.name}"`);let s=E.ƀjr(i.paramtypes.slice(1));n.entityID=t.id;let r=new e(t,...s);t.destroyed?r.destroy():t.ƀmo.ƀmq.push(r);}catch(i){console.error(i);}}constructor(t){this.ƀdi=t,this.ƀmq=[];}createViews(){if(!this.ƀdi.destroyed){let t=n.ƀmp.get(this.ƀdi.constructor);t&&t.forEach(e=>{n.ƀcm(this.ƀdi,e);});}}updateViews(t,e){for(let i=0;i<this.ƀmq.length;i++){let s=this.ƀmq[i];s.destroyed||s.update(t,e);}}destroyViews(){this.ƀmq.forEach(t=>{t.destroy();});}};T.onHardReset.subscribe(()=>{ft.ƀmp=new Map;}).attachToRoot();function It(){return function(n){D.registerEntityClass(n);}}h(It,"EntityDecorator");var Q=class extends actionsLib.IDAttachable{static{h(this,"Entity");}static getInstanceByID(t){if(t)return D.getEntity(this,t)}static getInstanceByIDOrFail(t){let e=D.getEntity(this,t);if(!e)throw new Error(`Entity: entity is not found! Name: "${this.name}", id: "${t}"`);return e}static getEntities(){return D.getEntities(this)}constructor(){super(),this.ƀmo=new ft(this),D.registerEntity(this),w.sceneUpdateAction.subscribe(t=>{this.destroyed||(this.ƀme(t.time,t.delta),this.ƀmo.updateViews(t.time,t.delta));}).attach(this);}destroy(){this.destroyed||(this.ƀmo.destroyViews(),D.unregisterEntity(this.constructor,this.id),super.destroy());}attach(t){return super.attach(t),this.ƀmo.createViews(),this}attachByID(t){return super.attachByID(t),this.ƀmo.createViews(),this}attachToRoot(){return super.attachToRoot(),this.ƀmo.createViews(),this}ƀme(t,e){}};var dt=class n extends Q{static{h(this,"SingletonEntity");}static{this.ƀcn=new WeakMap;}static ƀef(t){let e=n.ƀcn.get(t);return e||(e=new actionsLib.SingleAction,n.ƀcn.set(t,e)),e}static ƀmd(t){n.ƀcn.delete(t);}static getInstanceAsync(){let t=D.getSingleton(this);return t&&!t.destroyed?actionsLib.SingleEvent.instant(t):n.ƀef(this).toSingleEvent()}static continuesSubscription(){let t=h((e,i)=>{this.getInstanceAsync().tap(r=>{e({type:"open",value:r}),r.onDestroy().tap(()=>{e({type:"close",value:r}),t(e,i);}).attach(i);}).attach(i);},"subscribe");return actionsLib.Sequence.create((e,i)=>t(e,i.attachable))}static getInstance(){return D.getSingleton(this)}static getInstanceOrFail(){return D.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(()=>n.ƀmd(this.constructor)).attachToRoot(),n.ƀef(this.constructor).resolve(this);}};T.onHardReset.subscribe(()=>{dt.ƀcn=new WeakMap;}).attachToRoot();function Nr(){return function(n){return Vt.ƀhf.set(n,{paramtypes:E.ƀet(n)}),n}}h(Nr,"SceneDecorator");var Vt=class n extends actionsLib.IDAttachable{static{h(this,"Scene");}static{this.ƀhf=new WeakMap;}static{this.ƀge=new actionsLib.Variable(false);}static{this.isTransitioning=this.ƀge.notifier;}static{this.ƀb=new actionsLib.Variable(void 0);}static{this.activeScene=this.ƀb.notifier;}static getActiveSceneOrFail(){if(!n.ƀb.value)throw new Error("Scene: getActiveSceneOrFail is called when there is no active scene!");return n.ƀb.value}static cancelActiveScene(){return n.ƀb.value?n.ƀb.value.ƀj("cancel"):actionsLib.SingleEvent.instant()}static isActive(){return n.ƀb.value instanceof this}static getInstance(){return n.ƀb.value instanceof this?n.ƀb.value:void 0}static getInstanceOrFail(){if(!n.ƀb.value)throw new Error("Scene: getInstance is called when there is no active scene!");if(!(n.ƀb.value instanceof this))throw new Error(`Scene: getInstance is called while "${this.name}" was not the active scene. Current scene is: "${n.ƀb.value}"!`);return n.ƀb.value}static open(...t){if(n.ƀge.value)throw new Error("Scene: you cannot open a scene while a scene is transitioning!");if(n.ƀb.value)throw new Error("Scene: you cannot open a scene while there is already another active scene!");let e=n.ƀhf.get(this);if(!e)throw new Error(`Scene: scene class is not decorated by @SceneDecorator(), class: "${this.name}"`);let i=t[0];n.ƀge.value=true;let s=E.ƀjr(e.paramtypes),r=new this(...s).attachToRoot();return n.ƀb.set(r),r.init(i).map(()=>(n.ƀge.value=false,r)).chainToRoot()}constructor(){super(),this.ƀhr=new actionsLib.SingleAction,this.onClose=this.ƀhr.notifier,w.sceneUpdateAction.subscribe(t=>this.update(t.time,t.delta)).attach(this);}close(...t){if(n.ƀb.value!==this)throw new Error("Internal Error: Scene instance is accessed while it is not the active scene!");if(n.ƀge.value)throw new Error("Scene: you cannot close a scene while a scene is transitioning!");n.ƀge.value=true;let e=t[0];return this.ƀj(e).map(()=>(this.ƀhr.resolve(e),e)).chainToRoot()}ƀj(t){return this.prepareToClose(t).tap(()=>{super.destroy(),n.ƀb.set(void 0),n.ƀge.value=false;}).chainToRoot()}destroy(){throw new Error('To close a scene use the "close()" function')}};T.onHardReset.subscribe(()=>{Vt.ƀhf=new WeakMap,Vt.ƀb.set(void 0);}).attachToRoot();var U=class{static{h(this,"AnimationInterpolationFunctions");}static boomerangTime(t){return 1-Math.abs(t-.5)*2}static lineer(t){return t}static easeIn(t){return Math.pow(t,2)}static easeOut(t){return 1-Math.pow(1-t,2)}static easeInCubic(t){return Math.pow(t,3)}static easeOutCubic(t){return 1-Math.pow(1-t,3)}static easeInOut(t){return t<.5?2*t*t:(t-=1,1-2*t*t)}static easeInOutCubic(t){let e=2*t-2;return t<.5?4*Math.pow(t,3):(t-1)*Math.pow(e,2)+1}static blink(t){return t>.5?1:0}},Lr=class{static{h(this,"AnimationLineer");}start(){}multiplierFunction(t){return U.lineer(t)}},Hr=class{static{h(this,"AnimationEaseIn");}start(){}multiplierFunction(t){return U.easeIn(t)}},jr=class{static{h(this,"AnimationEaseOut");}start(){}multiplierFunction(t){return U.easeOut(t)}},Ur=class{static{h(this,"AnimationEaseInOut");}start(){}multiplierFunction(t){return U.easeInOut(t)}},Wr=class{static{h(this,"AnimationEaseInCubic");}start(){}multiplierFunction(t){return U.easeInCubic(t)}},$r=class{static{h(this,"AnimationEaseOutCubic");}start(){}multiplierFunction(t){return U.easeOutCubic(t)}},kr=class{static{h(this,"AnimationEaseInOutCubic");}start(){}multiplierFunction(t){return U.easeInOutCubic(t)}},zr=class{static{h(this,"AnimationBlink");}start(){}multiplierFunction(t){return U.blink(t)}},Li=class{static{h(this,"AnimationFlicker");}start(){this.ƀlz=new Array(10).fill(0),helpersLib.Random.integerBetween(0,9),this.ƀlz[helpersLib.Random.integerBetween(0,9)]=Math.random(),Math.random()<.3&&(helpersLib.Random.integerBetween(0,9),this.ƀlz[helpersLib.Random.integerBetween(0,9)]=Math.random()),Math.random()<.2&&(helpersLib.Random.integerBetween(0,9),this.ƀlz[helpersLib.Random.integerBetween(0,9)]=Math.random());}multiplierFunction(t){let e=Math.floor(t*10);return this.ƀlz[e]}},b=class{static{h(this,"Animations");}static{this.lineer=new Lr;}static{this.easeIn=new Hr;}static{this.easeOut=new jr;}static{this.easeInOut=new Ur;}static{this.easeInCubic=new Wr;}static{this.easeOutCubic=new $r;}static{this.easeInOutCubic=new kr;}static{this.blink=new zr;}};exports.ReAnimateHandlingType=void 0;(function(n){n[n.ThrowError=1]="ThrowError",n[n.IgnoreNewAnimation=2]="IgnoreNewAnimation",n[n.CompletePrevious=3]="CompletePrevious";})(exports.ReAnimateHandlingType||(exports.ReAnimateHandlingType={}));exports.AnimationsCompletionHandlingType=void 0;(function(n){n[n.ReturnToOriginal=1]="ReturnToOriginal",n[n.StayInCurrentState=2]="StayInCurrentState",n[n.JumpToEnd=3]="JumpToEnd",n[n.Loop=4]="Loop";})(exports.AnimationsCompletionHandlingType||(exports.AnimationsCompletionHandlingType={}));var O=class n{static{h(this,"Animator");}static{this.ƀl=new WeakMap;}static ƀdz(t){let e=n.ƀl.get(t);return e||(e=new helpersLib.MapToWeakRefs,n.ƀl.set(t,e)),e}get animating(){return this.ƀia!==void 0}get target(){return this.ƀlp}get value(){return this.ƀmj||(this.ƀmj=new actionsLib.Variable(this.ƀlp)),this.ƀmj.notifier}get paused(){return this.ƀii!==void 0}set paused(t){this.ƀii=t?true:void 0;}constructor(t,e,i){this.ƀgf=false,this.ƀks=false,this.ƀlp=t,this.ƀic={duration:200,animation:b.lineer,reAnimateHandling:exports.ReAnimateHandlingType.ThrowError,completionHandling:exports.AnimationsCompletionHandlingType.StayInCurrentState,...i},this.ƀm=helpersLib.Comparator.isArray(e)?e:[e],this.ƀgs(t,this.ƀm);}animate(t,e){let i={...this.ƀic,...e},s=this.ƀia;if(this.ƀia)switch(i.reAnimateHandling){case exports.ReAnimateHandlingType.ThrowError:throw new Error("Animator: new animation triggered while another is not complete yet.");case exports.ReAnimateHandlingType.IgnoreNewAnimation:return actionsLib.SingleEvent.instant().notIdle();case exports.ReAnimateHandlingType.CompletePrevious:this.ƀkg(i.completionHandling,this.ƀia.ƀje,true);break;default:{throw new Error}}return actionsLib.SingleEvent.create(o=>{this.ƀgf&&(this.ƀks=true);let a={};for(let c of this.ƀm)a[c]={ƀli:this.ƀlp[c],ƀls:t[c]};let l={ƀdc:i.duration,ƀdd:0,ƀje:a,ƀbl:i.completionHandling,ƀn:i.animation,ƀbk:o};if(l.ƀbl!==exports.AnimationsCompletionHandlingType.Loop&&this.ƀgc(l)){this.ƀia=void 0,o(),s?.ƀbk(),this.ƀbb();return}return l.ƀn.start(),this.ƀia=l,this.ƀdh(),s?.ƀbk(),()=>{this.ƀia===l&&(this.ƀlp instanceof actionsLib.Attachable&&this.ƀlp.destroyed||this.ƀkg(l.ƀbl,l.ƀje,true),this.ƀia=void 0,this.ƀbb());}}).notIdle()}set(t){this.ƀmw(e=>t[e]),this.ƀia?.ƀbk();}completeAnimation(t){if(this.ƀia){t=t??this.ƀia.ƀbl,this.ƀkg(t,this.ƀia.ƀje,true);let e=this.ƀia.ƀbk;this.ƀia=void 0,e();}}ƀdh(){this.ƀmf||(this.ƀmf=w.beforeSceneUpdateAction.subscribe(t=>{if(!this.ƀii){this.ƀgf=true;try{let e=this.ƀia;if(!e)return;if(e.ƀdd+=t.delta,e.ƀdd>=e.ƀdc)if(e.ƀbl===exports.AnimationsCompletionHandlingType.Loop)e.ƀdd%=e.ƀdc,e.ƀn.start();else {this.ƀkg(e.ƀbl,e.ƀje,!1),this.ƀia=void 0,e.ƀbk(),this.ƀbb();return}let i=e.ƀn.multiplierFunction(e.ƀdd/e.ƀdc);this.ƀmw(s=>{let r=e.ƀje[s];return (r.ƀls-r.ƀli)*i+r.ƀli});}finally{this.ƀgf=false,this.ƀks&&(this.ƀks=false,this.ƀcu(),this.ƀdh());}}}).attachToRoot());}ƀgc(t){return this.ƀm.every(e=>this.ƀlp[e]===t.ƀje[e].ƀls)}ƀkg(t,e,i){switch(t){case exports.AnimationsCompletionHandlingType.ReturnToOriginal:case exports.AnimationsCompletionHandlingType.Loop:this.ƀmw(s=>e[s].ƀli);break;case exports.AnimationsCompletionHandlingType.JumpToEnd:this.ƀmw(s=>e[s].ƀls);break;case exports.AnimationsCompletionHandlingType.StayInCurrentState:i||this.ƀmw(s=>e[s].ƀls);break;default:{throw new Error}}}ƀmw(t){let e=false;for(let i of this.ƀm){let s=t(i);this.ƀlp[i]!==s&&(e=true,this.ƀlp[i]=s);}e&&this.ƀmj?.set(this.ƀlp);}ƀbb(){this.ƀia||this.ƀcu();}ƀcu(){this.ƀmf?.destroy(),this.ƀmf=void 0;}ƀgs(t,e){let i=n.ƀdz(t);for(let s of e){if(i.has(s))throw new Error(`Animator: target property is already animated! Target: "${JSON.stringify(t,void 0,2)}", Property: "${s}"`);i.set(s,this);}}};var Pe=class extends actionsLib.IDAttachable{static{h(this,"DisplayObjectAttributes");}constructor(t){super(),this.ƀiw=t,this.ƀhg=false,this.ƀdr=false,this.ƀjv=1,this.ƀx=1;}setPosition(t,e){return e?.holdFrom&&(t=t.subtract(this.ƀem(e.holdFrom))),e?.round!==false&&(t=t.round({rollHalfsDown:true})),this.position=t,this}get position(){return new helpersLib.Vector(this.ƀiw.x,this.ƀiw.y)}set position(t){this.ƀiw.x=t.x,this.ƀiw.y=t.y;}get x(){return this.ƀiw.x}set x(t){this.ƀiw.x=t;}get y(){return this.ƀiw.y}set y(t){this.ƀiw.y=t;}setRotation(t){return this.rotation=t,this}get rotation(){return new helpersLib.Radian(this.ƀiw.rotation)}set rotation(t){this.ƀiw.rotation=t.value;}get rotationValue(){return this.ƀiw.rotation}set rotationValue(t){this.ƀiw.rotation=t;}setAlpha(t){return this.alpha=t,this}get alpha(){return this.ƀiw.alpha}set alpha(t){this.ƀiw.alpha=t;}setMirror(t=false){return this.mirror=t,this}get mirror(){return this.ƀhg}set mirror(t){this.ƀhg=t,this.ƀmh();}setFlip(t=false){return this.flip=t,this}get flip(){return this.ƀdr}set flip(t){this.ƀdr=t,this.ƀmh();}setScale(t){return this.scale=t,this}get scale(){return this.ƀjv}set scale(t){this.ƀjv=t,this.ƀmh();}setAspectRatio(t){return this.aspectRatio=t,this}get aspectRatio(){return this.ƀx}set aspectRatio(t){this.ƀx=t,this.ƀmh();}ƀmh(){let t=this.ƀjv,e=this.ƀjv;this.ƀx<1?t*=this.ƀx:this.ƀx>1&&(e/=this.ƀx),this.ƀhg&&(t*=-1),this.ƀdr&&(e*=-1),this.ƀu(t,e);}};var k=2;var Se=class{static{h(this,"GaussianValuesHelper");}static ƀdx(t,e){let i=e*e,s=1/(helpersLib.PI_360*i),r=-(t*t)/(2*i);return s*Math.exp(r)}static getValuesForLinearSamplingPascal(t){let e=t*2,i=Math.pow(2,e),s=.005*i,r=helpersLib.NumberHelper.pascalTriangleRow(e).slice(t).filter(l=>{if(l<s)i-=l*2;else return true}),o=1/i,a=r.map(l=>l*o);return this.ƀbw(a)}static getValuesForLinearSamplingGauss(t){if(t===0)return [{offset:0,multiplier:1}];if(t===1)return [{offset:0,multiplier:.5},{offset:1,multiplier:.25}];{let e=helpersLib.ArrayHelper.createIntegerArray(Math.ceil(t*.75)).map(s=>this.ƀdx(s,t*.4)),i=e.reduce((s,r)=>s+r,0);return i=i*2-e[0],e=e.map(s=>s/i),this.ƀbw(e)}}static ƀbw(t){let e=[{offset:0,multiplier:t[0]}];for(let i=1;i<t.length-1;i+=2){let s=t[i]+t[i+1],r=i+t[i+1]/s;e.push({offset:r,multiplier:s});}if(t.length%2===0){let i=t[t.length-1],s=t.length-1;e.push({offset:s,multiplier:i});}return e}};var ji=class Ui extends W__namespace.Filter{static{h(this,"BlurFilterPass");}static ƀeg(t,e){let i=e?"uInputPixel.z":"uInputPixel.w",s=`
|
|
2
2
|
in vec2 vTextureCoord;
|
|
3
3
|
out vec4 finalColor;
|
|
4
4
|
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
iterate(${o}, ${helpersLib.NumberHelper.toFloatString(t[r].multiplier)}, finalColor);
|
|
19
19
|
iterate(${o} * -1.0, ${helpersLib.NumberHelper.toFloatString(t[r].multiplier)}, finalColor);`;}return s+=`
|
|
20
20
|
}
|
|
21
|
-
`,s}constructor(t,e){super({glProgram:W__namespace.GlProgram.from({vertex:W__namespace.defaultFilterVert,fragment:ji.ƀed(Se.getValuesForLinearSamplingGauss(t),e)}),resolution:k});}},Ft=class extends W__namespace.Filter{static{h(this,"BlurFilter");}constructor(t=new helpersLib.Vector(2,2)){if(super({resolution:k,compatibleRenderers:W__namespace.RendererType.WEBGL}),this.ƀlb=t,this.ƀlb=t.multiplyNumber(k).floor(),this.ƀlb.x<0||this.ƀlb.y<0)throw new Error("BlurFilterLinearSampling: Strength * Resolution must be greater than 0");if(this.ƀlb.x>100||this.ƀlb.y>100)throw new Error("BlurFilterLinearSampling: Strength * Resolution cannot be higher than 100");this.ƀfl=new Hi(this.ƀlb.x,true),this.ƀma=new Hi(this.ƀlb.y,false),this.padding=Math.max(this.ƀlb.x,this.ƀlb.y);}apply(t,e,i,s){let r=W__namespace.TexturePool.getSameSizeTexture(e);this.ƀma.apply(t,e,r,true),this.ƀfl.apply(t,r,i,s),W__namespace.TexturePool.returnTexture(r);}get blendMode(){return this.ƀfl.blendMode}set blendMode(t){this.ƀfl&&(this.ƀfl.blendMode=t,this.ƀma.blendMode=t);}};var Ee=class{static{h(this,"Filters");}get red(){return this.ƀjd}set red(t){this.ƀjd=t,this.ƀje();}get green(){return this.ƀex}set green(t){this.ƀex=t,this.ƀje();}get blue(){return this.ƀai}set blue(t){this.ƀai=t,this.ƀje();}get brightness(){return this.ƀan}set brightness(t){this.ƀan=t,this.ƀje();}get contrast(){return this.ƀbr}set contrast(t){this.ƀbr=t,this.ƀje();}get blur(){return this.ƀaj}set blur(t){let e=helpersLib.Comparator.isNumber(t)?new helpersLib.Vector(t,t):t;(this.ƀaj&&e&&!this.ƀaj.isEqual(e)||this.ƀaj&&!e||!this.ƀaj&&e)&&(this.ƀaj=e,this.ƀak&&(this.ƀak.destroy(),this.ƀak=void 0),e&&(this.ƀak=new Ft(e),this.ƀhq()));}constructor(t){this.ƀbn=t,this.ƀjd=1,this.ƀex=1,this.ƀai=1,this.ƀan=1,this.ƀbr=1,this.ƀhq();}removeColorFilter(){this.ƀbg?.destroy(),this.ƀbg=void 0,this.ƀhq();}ƀje(){this.ƀjd===1&&this.ƀex===1&&this.ƀai===1&&this.ƀan===1&&this.ƀbr===1?this.ƀbg&&(this.ƀbg.destroy(),this.ƀbg=void 0,this.ƀhq()):(this.ƀbg||(this.ƀbg=new W__namespace.ColorMatrixFilter,this.ƀbg.resolution=k,this.ƀhq()),this.ƀbg.matrix=[this.ƀjd*this.ƀbr,0,0,0,this.ƀan-1,0,this.ƀex*this.ƀbr,0,0,this.ƀan-1,0,0,this.ƀai*this.ƀbr,0,this.ƀan-1,0,0,0,1,0]);}ƀhq(){let t=[];this.ƀak&&t.push(this.ƀak),this.ƀbg&&t.push(this.ƀbg),this.ƀbn.filters=t;}};exports.ContainerEventType=void 0;(function(n){n.Click="click",n.MouseOver="mouseover",n.MouseOut="mouseout",n.PointerDown="pointerdown",n.PointerUp="pointerup",n.PointerUpOutside="pointerupoutside",n.PointerMove="pointermove",n.PointerCancel="pointercancel",n.PointerOver="pointerover",n.PointerOut="pointerout",n.PointerEnter="pointerenter",n.PointerLeave="pointerleave",n.Added="added",n.Removed="removed",n.Update="update",n.Change="change",n.Wheel="wheel";})(exports.ContainerEventType||(exports.ContainerEventType={}));exports.Cursor=void 0;(function(n){n.Default="default",n.Pointer="pointer";})(exports.Cursor||(exports.Cursor={}));var d=class n extends Pe{static{h(this,"Container");}static{this.allContainers=new Map;}constructor(t=new W__namespace.Container){super(t),this.addChildTo=this,this.defaultChildOptions={addUnder:false,cropOverflowingParts:false},this.ƀiq=t,n.allContainers.set(this.id,this),this.filters=new Ee(this.ƀiq);}destroy(){this.destroyed||(super.destroy(),n.allContainers.delete(this.id),!this.ƀiq.destroyed&&this.ƀiq.destroy());}ƀu(t,e){this.ƀiq.scale.set(t,e);}ƀej(t){let e=this.ƀiq.getLocalBounds(),i=new helpersLib.Vector(this.ƀiq.scale.x,this.ƀiq.scale.y),s=new helpersLib.Vector(e.x,e.y).multiply(i),r=new helpersLib.Vector(e.width,e.height).multiply(i);return s.add(r.multiply(t))}get size(){return this.getSize()}set size(t){this.setSize(t);}getSize(){return new helpersLib.Vector(this.ƀiq.width,this.ƀiq.height)}setSize(t){return this.ƀiq.width=t.x,this.ƀiq.height=t.y,this}setLayout(t={}){return this.ƀiq.layout={isLeaf:true,width:"intrinsic",height:"intrinsic",...t},this}on(t){return actionsLib.Sequence.create(e=>{let i=h(s=>{if(t===exports.ContainerEventType.Wheel){let o=s.deltaY;e({deltaY:o});}else e(void 0);},"handle");return this.ƀiq.on(t,i),()=>this.ƀiq.off(t,i)}).notIdle()}setZIndex(t){return this.zIndex=t,this}get zIndex(){return this.ƀiq.zIndex}set zIndex(t){this.ƀiq.zIndex=t;}setSkewX(t){return this.skewX=t,this}get skewX(){return new helpersLib.Radian(this.ƀiq.skew.x)}set skewX(t){this.ƀiq.skew.x=t.value;}setSkewY(t){return this.skewY=t,this}get skewY(){return new helpersLib.Radian(this.ƀiq.skew.y)}set skewY(t){this.ƀiq.skew.y=t.value;}setSortableChildren(t){return this.sortableChildren=t,this}get sortableChildren(){return this.ƀiq.sortableChildren}set sortableChildren(t){this.ƀiq.sortableChildren=t;}setInteractive(t){return this.interactive=t,this}get interactive(){return this.ƀiq.eventMode==="dynamic"}set interactive(t){t?this.ƀiq.eventMode="dynamic":this.ƀiq.eventMode="none";}setRenderGroup(t=true){return this.ƀiq.isRenderGroup=t,this}setCursor(t){return this.cursor=t,this}get cursor(){return this.ƀiq.cursor}set cursor(t){this.ƀiq.cursor=t;}getMask(){throw new Error("Container: mask is not available!")}setMask(t){return t?(this.ƀiq.addChild(t.ƀiq),this.ƀiq.mask=t.getMask(),this.ƀgq=t):(this.ƀgq&&this.ƀiq.removeChild(this.ƀgq.ƀiq),this.ƀiq.mask=null),this}hitTest(t){if(this.ƀiq.parent)if(this.ƀiq.hitArea){let e=this.ƀiq.toLocal(t);return this.ƀiq.hitArea.contains(e.x,e.y)}else return this.ƀiq.getBounds().containsPoint(t.x,t.y);else return false}get boundingBox(){let t=this.ƀiq.getLocalBounds();return new helpersLib.Rectangle(new helpersLib.Vector(t.x,t.y),new helpersLib.Vector(t.x+t.width,t.y+t.height))}ignoreBounds(t=true){return this.ƀiq.measurable=!t,this}getBoundingMask(){if(this.addChildTo!==this)return this.addChildTo.getBoundingMask();throw new Error(`Container: bounding mask cannot be used without bounding shapes. Display Object: "${this.id}"!`)}displayParent(t,e){let i;if(helpersLib.Comparator.isNumber(t)){if(i=n.allContainers.get(t),!i)throw new Error(`Container: parent not found! id: ${t}`)}else i=t;let s={addUnder:i.defaultChildOptions.addUnder,cropOverflowingParts:i.defaultChildOptions.cropOverflowingParts,...e};if(s.addUnder?i.addChildTo.ƀiq.addChildAt(this.ƀiq,0):i.addChildTo.ƀiq.addChild(this.ƀiq),s.cropOverflowingParts)if(i)this.ƀiq.mask=i.getBoundingMask().pixiSprite;else throw new Error("Container: cropOverflowingParts can only be used with Container parent!");return this}};var jt=class extends actionsLib.Attachable{static{h(this,"StateAnimation");}onStateChange(t){return this.ƀhs.subscribe(e=>t(e.item,e.nextItem)).attach(this),this}onValueChange(t){return this.ƀhu.subscribe(e=>t(e)).attach(this),this}get state(){return {value:this.ƀk.value,item:this.ƀgb,nextItem:this.ƀhk,queuedItem:this.ƀja,animationState:this.ƀo}}get paused(){return this.ƀp.paused}set paused(t){this.ƀp.paused=t;}constructor(t){super(),this.ƀk={value:0},this.ƀo="idle",this.ƀhs=new actionsLib.Action,this.ƀhu=new actionsLib.Action,this.ƀhx={duration:500,animation:b.lineer,...t},this.ƀp=new O(this.ƀk,"value",{duration:this.ƀhx.duration,animation:this.ƀhx.animation,reAnimateHandling:exports.ReAnimateHandlingType.CompletePrevious,completionHandling:exports.AnimationsCompletionHandlingType.StayInCurrentState}),this.ƀp.value.subscribe(()=>{this.ƀk.value!==1&&this.ƀk.value!==0&&this.ƀhu.trigger(this.ƀk.value);}).attach(this);}setItem(t,e){if(this.ƀgb===void 0)this.ƀgb=t,this.ƀhs.trigger({item:this.ƀgb,nextItem:this.ƀhk}),this.ƀhu.trigger(this.ƀk.value);else if(e?.instant)this.ƀp.completeAnimation(),this.ƀo="idle",this.ƀgb=t,this.ƀhk=void 0,this.ƀja=void 0,this.ƀk.value=0,this.ƀhs.trigger({item:this.ƀgb,nextItem:this.ƀhk}),this.ƀhu.trigger(this.ƀk.value);else switch(this.ƀo){case "idle":t!==this.ƀgb&&(this.ƀo="transitioning",this.ƀhk=t,this.ƀk.value=0,this.ƀhs.trigger({item:this.ƀgb,nextItem:this.ƀhk}),this.ƀhu.trigger(this.ƀk.value),this.ƀp.animate({value:1}).tap(()=>this.ƀho()).attach(this));break;case "transitioning":t===this.ƀgb?(this.ƀja=void 0,this.ƀo="reverting",this.ƀp.animate({value:0},{duration:this.ƀk.value*this.ƀhx.duration}).tap(()=>this.ƀho()).attach(this)):t===this.ƀhk?this.ƀja=void 0:this.ƀja=t;break;case "reverting":t===this.ƀhk?(this.ƀja=void 0,this.ƀo="transitioning",this.ƀp.animate({value:1},{duration:(1-this.ƀk.value)*this.ƀhx.duration}).tap(()=>this.ƀho()).attach(this)):t===this.ƀgb?this.ƀja=void 0:this.ƀja=t;break;default:{this.ƀo;throw new Error}}}ƀho(){switch(this.ƀo){case "transitioning":this.ƀk.value===1&&(this.ƀk.value=0,this.ƀja!==void 0?(this.ƀo="transitioning",this.ƀgb=this.ƀhk,this.ƀhk=this.ƀja,this.ƀja=void 0,this.ƀhs.trigger({item:this.ƀgb,nextItem:this.ƀhk}),this.ƀp.animate({value:1}).tap(()=>this.ƀho()).attach(this)):(this.ƀo="idle",this.ƀgb=this.ƀhk,this.ƀhk=void 0,this.ƀhs.trigger({item:this.ƀgb,nextItem:this.ƀhk})),this.ƀhu.trigger(this.ƀk.value));break;case "reverting":if(this.ƀgb===void 0)throw new Error("StateAnimation: item must be defined when reverting!");this.ƀk.value===0&&(this.ƀja!==void 0?(this.ƀo="transitioning",this.ƀhk=this.ƀja,this.ƀja=void 0,this.ƀk.value=0,this.ƀhs.trigger({item:this.ƀgb,nextItem:this.ƀhk}),this.ƀp.animate({value:1}).tap(()=>this.ƀho()).attach(this)):(this.ƀo="idle",this.ƀhk=void 0,this.ƀk.value=0,this.ƀhs.trigger({item:this.ƀgb,nextItem:this.ƀhk})),this.ƀhu.trigger(this.ƀk.value));break;case "idle":break;default:{this.ƀo;throw new Error}}}};var J=Symbol("empty"),Re=class extends actionsLib.Attachable{static{h(this,"ThroughEmptyStateAnimation");}onStateChange(t){return this.ƀhs.subscribe(e=>t(e)).attach(this),this}onValueChange(t){return this.ƀhu.subscribe(e=>t(e)).attach(this),this}get state(){let t=this.ƀky.state.queuedItem;return {value:this.ƀlx,item:this.ƀgb,nextItem:this.ƀo==="appearing"?this.ƀgb:void 0,queuedItem:t===J?void 0:t,animationState:this.ƀo}}constructor(t){super(),this.ƀlx=0,this.ƀo="hidden",this.ƀhs=new actionsLib.Action,this.ƀhu=new actionsLib.Action,this.ƀky=new jt(t).onStateChange((e,i)=>this.ƀez(e,i)).onValueChange(e=>this.ƀfe(e)).attach(this),this.ƀky.setItem(J);}setItem(t,e){if(e?.instant){this.ƀo=t!==void 0?"appearing":"disappearing",this.ƀky.setItem(t??J,{instant:true});return}switch(this.ƀo){case "hidden":t!==void 0&&(this.ƀo="appearing",this.ƀky.setItem(t));break;case "visible":t===void 0?(this.ƀo="disappearing",this.ƀky.setItem(J)):t!==this.ƀgb&&(this.ƀo="disappearToChange",this.ƀky.setItem(J),this.ƀky.setItem(t));break;case "appearing":t===void 0?(this.ƀo="disappearing",this.ƀky.setItem(J)):t!==this.ƀgb&&(this.ƀlx>0?(this.ƀo="disappearToChange",this.ƀky.setItem(J),this.ƀky.setItem(t)):(this.ƀky.setItem(J,{instant:true}),this.ƀky.setItem(t)));break;case "disappearing":t!==void 0&&t===this.ƀgb?(this.ƀo="appearing",this.ƀky.setItem(t)):t!==void 0&&(this.ƀo="disappearToChange",this.ƀky.setItem(t));break;case "disappearToChange":t===void 0?(this.ƀo="disappearing",this.ƀky.setItem(J)):t===this.ƀgb?(this.ƀo="appearing",this.ƀky.setItem(t)):this.ƀky.setItem(t);break;default:{this.ƀo;throw new Error}}}ƀez(t,e){if(e!==void 0){e!==J&&e!==this.ƀgb&&(this.ƀgb=e,this.ƀo="appearing",this.ƀhs.trigger(this.ƀgb),this.ƀlx!==0&&(this.ƀlx=0,this.ƀhu.trigger(0)));return}if(t===J)this.ƀo==="disappearing"&&(this.ƀgb=void 0,this.ƀo="hidden",this.ƀlx=0,this.ƀhs.trigger(void 0),this.ƀhu.trigger(0));else {let i=t!==this.ƀgb;this.ƀgb=t,this.ƀo="visible",i&&this.ƀhs.trigger(this.ƀgb),(i||this.ƀlx!==1)&&(this.ƀlx=1,this.ƀhu.trigger(1));}}ƀfe(t){let e=this.ƀky.state.nextItem;if(e===void 0)return;let i=e===J?1-t:t;i!==this.ƀlx&&(this.ƀlx=i,i!==0&&i!==1&&this.ƀhu.trigger(i));}};var Ji=class extends d{static{h(this,"FadeInContent");}constructor(t,e){super(),this.ƀca=t;let i={duration:200,animation:b.easeInOut,...e};this.alpha=0,this.ƀky=new Re(i).onStateChange(s=>{this.ƀbo?.destroy(),this.ƀbo=void 0,s!==void 0&&(this.ƀbo=new d().displayParent(this).attach(this),this.ƀca({state:s,container:this.ƀbo}));}).onValueChange(s=>{this.alpha=s;}).attach(this);}setState(t,e){return this.ƀky.setItem(t,e),this}};var G=class{static{h(this,"GameAssets");}static{this.ƀjl=new Map;}static{this.ƀq=0;}static getAsset(t){let e=this.ƀjl.get(t);if(e)return e;throw new Error(`Game Assets: Resource not found! Key: "${t}"`)}static insertAsset(t,e){let i=e||`a-${this.ƀq++}`;return this.ƀjl.set(i,t),i}static destroyAsset(t){let e=this.ƀjl.get(t);e&&(e.source.removeAllListeners("change"),e.destroy(true),this.ƀjl.delete(t));}static async loadGameAssets(t){let e=new Map,i=[];t.forEach(r=>{if(!helpersLib.Comparator.isString(r.url))throw new Error(`GameAssets: source url should be a string: ${r.url}`);let o=e.get(r.url),a=r.id;o?o.push(a):(e.set(r.url,[a]),i.push({url:r.url,callback:h(l=>{if(l instanceof W__namespace.Texture&&(l.id=a),o=e.get(r.url),o)o.forEach(c=>{this.ƀjl.set(c,l);});else throw new Error(`GameAssets: unexpected error, nameGroup is not found! "./"! ${r}`)},"callback")}));});let s=performance.now();return Promise.all(i.map(r=>W__namespace.Assets.load(r.url))).then(r=>{let o=performance.now();console.info("Asset load completed in: ",Math.round(o-s)/1e3," seconds"),r.forEach((a,l)=>{i[l].callback(a);});}).catch(r=>{throw new Error(`GameAssets: during asset loading, an error occured: ${r}`)})}};var Ae=class n extends W__namespace.Filter{static{h(this,"ExpandWithColorFilter");}static ƀed(t){let e=`
|
|
21
|
+
`,s}constructor(t,e){super({glProgram:W__namespace.GlProgram.from({vertex:W__namespace.defaultFilterVert,fragment:Ui.ƀeg(Se.getValuesForLinearSamplingGauss(t),e)}),resolution:k});}},Nt=class extends W__namespace.Filter{static{h(this,"BlurFilter");}constructor(t=new helpersLib.Vector(2,2)){if(super({resolution:k,compatibleRenderers:W__namespace.RendererType.WEBGL}),this.ƀln=t,this.ƀln=t.multiplyNumber(k).floor(),this.ƀln.x<0||this.ƀln.y<0)throw new Error("BlurFilterLinearSampling: Strength * Resolution must be greater than 0");if(this.ƀln.x>100||this.ƀln.y>100)throw new Error("BlurFilterLinearSampling: Strength * Resolution cannot be higher than 100");this.ƀfq=new ji(this.ƀln.x,true),this.ƀmm=new ji(this.ƀln.y,false),this.padding=Math.max(this.ƀln.x,this.ƀln.y);}apply(t,e,i,s){let r=W__namespace.TexturePool.getSameSizeTexture(e);this.ƀmm.apply(t,e,r,true),this.ƀfq.apply(t,r,i,s),W__namespace.TexturePool.returnTexture(r);}get blendMode(){return this.ƀfq.blendMode}set blendMode(t){this.ƀfq&&(this.ƀfq.blendMode=t,this.ƀmm.blendMode=t);}};var Ee=class{static{h(this,"Filters");}get red(){return this.ƀjk}set red(t){this.ƀjk=t,this.ƀjl();}get green(){return this.ƀfc}set green(t){this.ƀfc=t,this.ƀjl();}get blue(){return this.ƀai}set blue(t){this.ƀai=t,this.ƀjl();}get brightness(){return this.ƀan}set brightness(t){this.ƀan=t,this.ƀjl();}get contrast(){return this.ƀbr}set contrast(t){this.ƀbr=t,this.ƀjl();}get blur(){return this.ƀaj}set blur(t){let e=helpersLib.Comparator.isNumber(t)?new helpersLib.Vector(t,t):t;(this.ƀaj&&e&&!this.ƀaj.isEqual(e)||this.ƀaj&&!e||!this.ƀaj&&e)&&(this.ƀaj=e,this.ƀak&&(this.ƀak.destroy(),this.ƀak=void 0),e&&(this.ƀak=new Nt(e),this.ƀhv()));}constructor(t){this.ƀbn=t,this.ƀjk=1,this.ƀfc=1,this.ƀai=1,this.ƀan=1,this.ƀbr=1,this.ƀhv();}removeColorFilter(){this.ƀbg?.destroy(),this.ƀbg=void 0,this.ƀhv();}ƀjl(){this.ƀjk===1&&this.ƀfc===1&&this.ƀai===1&&this.ƀan===1&&this.ƀbr===1?this.ƀbg&&(this.ƀbg.destroy(),this.ƀbg=void 0,this.ƀhv()):(this.ƀbg||(this.ƀbg=new W__namespace.ColorMatrixFilter,this.ƀbg.resolution=k,this.ƀhv()),this.ƀbg.matrix=[this.ƀjk*this.ƀbr,0,0,0,this.ƀan-1,0,this.ƀfc*this.ƀbr,0,0,this.ƀan-1,0,0,this.ƀai*this.ƀbr,0,this.ƀan-1,0,0,0,1,0]);}ƀhv(){let t=[];this.ƀak&&t.push(this.ƀak),this.ƀbg&&t.push(this.ƀbg),this.ƀbn.filters=t;}};exports.ContainerEventType=void 0;(function(n){n.Click="click",n.MouseOver="mouseover",n.MouseOut="mouseout",n.PointerDown="pointerdown",n.PointerUp="pointerup",n.PointerUpOutside="pointerupoutside",n.PointerMove="pointermove",n.PointerCancel="pointercancel",n.PointerOver="pointerover",n.PointerOut="pointerout",n.PointerEnter="pointerenter",n.PointerLeave="pointerleave",n.Added="added",n.Removed="removed",n.Update="update",n.Change="change",n.Wheel="wheel";})(exports.ContainerEventType||(exports.ContainerEventType={}));exports.Cursor=void 0;(function(n){n.Default="default",n.Pointer="pointer";})(exports.Cursor||(exports.Cursor={}));var d=class n extends Pe{static{h(this,"Container");}static{this.allContainers=new Map;}constructor(t=new W__namespace.Container){super(t),this.addChildTo=this,this.defaultChildOptions={addUnder:false,cropOverflowingParts:false},this.ƀiv=t,n.allContainers.set(this.id,this),this.filters=new Ee(this.ƀiv);}destroy(){this.destroyed||(super.destroy(),n.allContainers.delete(this.id),!this.ƀiv.destroyed&&this.ƀiv.destroy());}ƀu(t,e){this.ƀiv.scale.set(t,e);}ƀem(t){let e=this.ƀiv.getLocalBounds(),i=new helpersLib.Vector(this.ƀiv.scale.x,this.ƀiv.scale.y),s=new helpersLib.Vector(e.x,e.y).multiply(i),r=new helpersLib.Vector(e.width,e.height).multiply(i);return s.add(r.multiply(t))}get size(){return this.getSize()}set size(t){this.setSize(t);}getSize(){return new helpersLib.Vector(this.ƀiv.width,this.ƀiv.height)}setSize(t){return this.ƀiv.width=t.x,this.ƀiv.height=t.y,this}setLayout(t={}){return this.ƀiv.layout={isLeaf:true,width:"intrinsic",height:"intrinsic",...t},this}on(t){return actionsLib.Sequence.create(e=>{let i=h(s=>{if(t===exports.ContainerEventType.Wheel){let o=s.deltaY;e({deltaY:o});}else e(void 0);},"handle");return this.ƀiv.on(t,i),()=>this.ƀiv.off(t,i)}).notIdle()}setZIndex(t){return this.zIndex=t,this}get zIndex(){return this.ƀiv.zIndex}set zIndex(t){this.ƀiv.zIndex=t;}setSkewX(t){return this.skewX=t,this}get skewX(){return new helpersLib.Radian(this.ƀiv.skew.x)}set skewX(t){this.ƀiv.skew.x=t.value;}setSkewY(t){return this.skewY=t,this}get skewY(){return new helpersLib.Radian(this.ƀiv.skew.y)}set skewY(t){this.ƀiv.skew.y=t.value;}setSortableChildren(t){return this.sortableChildren=t,this}get sortableChildren(){return this.ƀiv.sortableChildren}set sortableChildren(t){this.ƀiv.sortableChildren=t;}setInteractive(t){return this.interactive=t,this}get interactive(){return this.ƀiv.eventMode==="dynamic"}set interactive(t){t?this.ƀiv.eventMode="dynamic":this.ƀiv.eventMode="none";}setRenderGroup(t=true){return this.ƀiv.isRenderGroup=t,this}setCursor(t){return this.cursor=t,this}get cursor(){return this.ƀiv.cursor}set cursor(t){this.ƀiv.cursor=t;}getMask(){throw new Error("Container: mask is not available!")}setMask(t){return t?(this.ƀiv.addChild(t.ƀiv),this.ƀiv.mask=t.getMask(),this.ƀgv=t):(this.ƀgv&&this.ƀiv.removeChild(this.ƀgv.ƀiv),this.ƀiv.mask=null),this}hitTest(t){if(this.ƀiv.parent)if(this.ƀiv.hitArea){let e=this.ƀiv.toLocal(t);return this.ƀiv.hitArea.contains(e.x,e.y)}else return this.ƀiv.getBounds().containsPoint(t.x,t.y);else return false}get boundingBox(){let t=this.ƀiv.getLocalBounds();return new helpersLib.Rectangle(new helpersLib.Vector(t.x,t.y),new helpersLib.Vector(t.x+t.width,t.y+t.height))}ignoreBounds(t=true){return this.ƀiv.measurable=!t,this}getBoundingMask(){if(this.addChildTo!==this)return this.addChildTo.getBoundingMask();throw new Error(`Container: bounding mask cannot be used without bounding shapes. Display Object: "${this.id}"!`)}displayParent(t,e){let i;if(helpersLib.Comparator.isNumber(t)){if(i=n.allContainers.get(t),!i)throw new Error(`Container: parent not found! id: ${t}`)}else i=t;let s={addUnder:i.defaultChildOptions.addUnder,cropOverflowingParts:i.defaultChildOptions.cropOverflowingParts,...e};if(s.addUnder?i.addChildTo.ƀiv.addChildAt(this.ƀiv,0):i.addChildTo.ƀiv.addChild(this.ƀiv),s.cropOverflowingParts)if(i)this.ƀiv.mask=i.getBoundingMask().pixiSprite;else throw new Error("Container: cropOverflowingParts can only be used with Container parent!");return this}};var jt=class extends actionsLib.Attachable{static{h(this,"StateAnimation");}onStateChange(t){return this.ƀhx.subscribe(e=>t(e.item,e.nextItem)).attach(this),this}onValueChange(t){return this.ƀhz.subscribe(e=>t(e)).attach(this),this}get state(){return {value:this.ƀk.value,item:this.ƀgg,nextItem:this.ƀhp,queuedItem:this.ƀjg,animationState:this.ƀo}}get paused(){return this.ƀp.paused}set paused(t){this.ƀp.paused=t;}constructor(t){super(),this.ƀk={value:0},this.ƀo="idle",this.ƀhx=new actionsLib.Action,this.ƀhz=new actionsLib.Action,this.ƀic={duration:500,animation:b.lineer,...t},this.ƀp=new O(this.ƀk,"value",{duration:this.ƀic.duration,animation:this.ƀic.animation,reAnimateHandling:exports.ReAnimateHandlingType.CompletePrevious,completionHandling:exports.AnimationsCompletionHandlingType.StayInCurrentState}),this.ƀp.value.subscribe(()=>{this.ƀk.value!==1&&this.ƀk.value!==0&&this.ƀhz.trigger(this.ƀk.value);}).attach(this);}setItem(t,e){if(this.ƀgg===void 0)this.ƀgg=t,this.ƀhx.trigger({item:this.ƀgg,nextItem:this.ƀhp}),this.ƀhz.trigger(this.ƀk.value);else if(e?.instant)this.ƀp.completeAnimation(),this.ƀo="idle",this.ƀgg=t,this.ƀhp=void 0,this.ƀjg=void 0,this.ƀk.value=0,this.ƀhx.trigger({item:this.ƀgg,nextItem:this.ƀhp}),this.ƀhz.trigger(this.ƀk.value);else switch(this.ƀo){case "idle":t!==this.ƀgg&&(this.ƀo="transitioning",this.ƀhp=t,this.ƀk.value=0,this.ƀhx.trigger({item:this.ƀgg,nextItem:this.ƀhp}),this.ƀhz.trigger(this.ƀk.value),this.ƀp.animate({value:1}).tap(()=>this.ƀht()).attach(this));break;case "transitioning":t===this.ƀgg?(this.ƀjg=void 0,this.ƀo="reverting",this.ƀp.animate({value:0},{duration:this.ƀk.value*this.ƀic.duration}).tap(()=>this.ƀht()).attach(this)):t===this.ƀhp?this.ƀjg=void 0:this.ƀjg=t;break;case "reverting":t===this.ƀhp?(this.ƀjg=void 0,this.ƀo="transitioning",this.ƀp.animate({value:1},{duration:(1-this.ƀk.value)*this.ƀic.duration}).tap(()=>this.ƀht()).attach(this)):t===this.ƀgg?this.ƀjg=void 0:this.ƀjg=t;break;default:{this.ƀo;throw new Error}}}ƀht(){switch(this.ƀo){case "transitioning":this.ƀk.value===1&&(this.ƀk.value=0,this.ƀjg!==void 0?(this.ƀo="transitioning",this.ƀgg=this.ƀhp,this.ƀhp=this.ƀjg,this.ƀjg=void 0,this.ƀhx.trigger({item:this.ƀgg,nextItem:this.ƀhp}),this.ƀp.animate({value:1}).tap(()=>this.ƀht()).attach(this)):(this.ƀo="idle",this.ƀgg=this.ƀhp,this.ƀhp=void 0,this.ƀhx.trigger({item:this.ƀgg,nextItem:this.ƀhp})),this.ƀhz.trigger(this.ƀk.value));break;case "reverting":if(this.ƀgg===void 0)throw new Error("StateAnimation: item must be defined when reverting!");this.ƀk.value===0&&(this.ƀjg!==void 0?(this.ƀo="transitioning",this.ƀhp=this.ƀjg,this.ƀjg=void 0,this.ƀk.value=0,this.ƀhx.trigger({item:this.ƀgg,nextItem:this.ƀhp}),this.ƀp.animate({value:1}).tap(()=>this.ƀht()).attach(this)):(this.ƀo="idle",this.ƀhp=void 0,this.ƀk.value=0,this.ƀhx.trigger({item:this.ƀgg,nextItem:this.ƀhp})),this.ƀhz.trigger(this.ƀk.value));break;case "idle":break;default:{this.ƀo;throw new Error}}}};var J=Symbol("empty"),Re=class extends actionsLib.Attachable{static{h(this,"ThroughEmptyStateAnimation");}onStateChange(t){return this.ƀhx.subscribe(e=>t(e)).attach(this),this}onValueChange(t){return this.ƀhz.subscribe(e=>t(e)).attach(this),this}get state(){let t=this.ƀlj.state.queuedItem;return {value:this.ƀmj,item:this.ƀgg,nextItem:this.ƀo==="appearing"?this.ƀgg:void 0,queuedItem:t===J?void 0:t,animationState:this.ƀo}}constructor(t){super(),this.ƀmj=0,this.ƀo="hidden",this.ƀhx=new actionsLib.Action,this.ƀhz=new actionsLib.Action,this.ƀlj=new jt(t).onStateChange((e,i)=>this.ƀfe(e,i)).onValueChange(e=>this.ƀfj(e)).attach(this),this.ƀlj.setItem(J);}setItem(t,e){if(e?.instant){this.ƀo=t!==void 0?"appearing":"disappearing",this.ƀlj.setItem(t??J,{instant:true});return}switch(this.ƀo){case "hidden":t!==void 0&&(this.ƀo="appearing",this.ƀlj.setItem(t));break;case "visible":t===void 0?(this.ƀo="disappearing",this.ƀlj.setItem(J)):t!==this.ƀgg&&(this.ƀo="disappearToChange",this.ƀlj.setItem(J),this.ƀlj.setItem(t));break;case "appearing":t===void 0?(this.ƀo="disappearing",this.ƀlj.setItem(J)):t!==this.ƀgg&&(this.ƀmj>0?(this.ƀo="disappearToChange",this.ƀlj.setItem(J),this.ƀlj.setItem(t)):(this.ƀlj.setItem(J,{instant:true}),this.ƀlj.setItem(t)));break;case "disappearing":t!==void 0&&t===this.ƀgg?(this.ƀo="appearing",this.ƀlj.setItem(t)):t!==void 0&&(this.ƀo="disappearToChange",this.ƀlj.setItem(t));break;case "disappearToChange":t===void 0?(this.ƀo="disappearing",this.ƀlj.setItem(J)):t===this.ƀgg?(this.ƀo="appearing",this.ƀlj.setItem(t)):this.ƀlj.setItem(t);break;default:{this.ƀo;throw new Error}}}ƀfe(t,e){if(e!==void 0){e!==J&&e!==this.ƀgg&&(this.ƀgg=e,this.ƀo="appearing",this.ƀhx.trigger(this.ƀgg),this.ƀmj!==0&&(this.ƀmj=0,this.ƀhz.trigger(0)));return}if(t===J)this.ƀo==="disappearing"&&(this.ƀgg=void 0,this.ƀo="hidden",this.ƀmj=0,this.ƀhx.trigger(void 0),this.ƀhz.trigger(0));else {let i=t!==this.ƀgg;this.ƀgg=t,this.ƀo="visible",i&&this.ƀhx.trigger(this.ƀgg),(i||this.ƀmj!==1)&&(this.ƀmj=1,this.ƀhz.trigger(1));}}ƀfj(t){let e=this.ƀlj.state.nextItem;if(e===void 0)return;let i=e===J?1-t:t;i!==this.ƀmj&&(this.ƀmj=i,i!==0&&i!==1&&this.ƀhz.trigger(i));}};var Yi=class extends d{static{h(this,"FadeInContent");}constructor(t,e){super(),this.ƀca=t;let i={duration:200,animation:b.easeInOut,...e};this.alpha=0,this.ƀlj=new Re(i).onStateChange(s=>{this.ƀbo?.destroy(),this.ƀbo=void 0,s!==void 0&&(this.ƀbo=new d().displayParent(this).attach(this),this.ƀca({state:s,container:this.ƀbo}));}).onValueChange(s=>{this.alpha=s;}).attach(this);}setState(t,e){return this.ƀlj.setItem(t,e),this}};var G=class{static{h(this,"GameAssets");}static{this.ƀjs=new Map;}static{this.ƀq=0;}static getAsset(t){let e=this.ƀjs.get(t);if(e)return e;throw new Error(`Game Assets: Resource not found! Key: "${t}"`)}static insertAsset(t,e){let i=e||`a-${this.ƀq++}`;return this.ƀjs.set(i,t),i}static destroyAsset(t){let e=this.ƀjs.get(t);e&&(e.source.removeAllListeners("change"),e.destroy(true),this.ƀjs.delete(t));}static async loadGameAssets(t){let e=new Map,i=[];t.forEach(r=>{if(!helpersLib.Comparator.isString(r.url))throw new Error(`GameAssets: source url should be a string: ${r.url}`);let o=e.get(r.url),a=r.id;o?o.push(a):(e.set(r.url,[a]),i.push({url:r.url,callback:h(l=>{if(l instanceof W__namespace.Texture&&(l.id=a),o=e.get(r.url),o)o.forEach(c=>{this.ƀjs.set(c,l);});else throw new Error(`GameAssets: unexpected error, nameGroup is not found! "./"! ${r}`)},"callback")}));});let s=performance.now();return Promise.all(i.map(r=>W__namespace.Assets.load(r.url))).then(r=>{let o=performance.now();console.info("Asset load completed in: ",Math.round(o-s)/1e3," seconds"),r.forEach((a,l)=>{i[l].callback(a);});}).catch(r=>{throw new Error(`GameAssets: during asset loading, an error occured: ${r}`)})}};var Ae=class n extends W__namespace.Filter{static{h(this,"ExpandWithColorFilter");}static ƀeg(t){let e=`
|
|
22
22
|
in vec2 vTextureCoord;
|
|
23
23
|
out vec4 finalColor;
|
|
24
24
|
|
|
@@ -42,4 +42,4 @@
|
|
|
42
42
|
highestAlpha = centerColor.a;`,e+=`
|
|
43
43
|
|
|
44
44
|
finalColor = vec4(uColor, 1.0) * highestAlpha;
|
|
45
|
-
}`,e}constructor(t,e){if(super({glProgram:W__namespace.GlProgram.from({vertex:W__namespace.defaultFilterVert,fragment:n.ƀed(t*k)}),resources:{expandUniforms:{uColor:{value:new Float32Array(3),type:"vec3<f32>"},uExpandSquared:{value:0,type:"f32"}}},resolution:k}),this.ƀdi=t,this.ƀdi=t*k,this.ƀdi<0)throw new Error("ExpandWithColorFilter: Expand * resolution cannot be smaller than 0");if(this.ƀdi>10)throw new Error("ExpandWithColorFilter: Expand * resolution cannot be higher than 10");helpersLib.Comparator.isInteger(this.ƀdi)||(this.ƀdi=Math.floor(this.ƀdi));let i=helpersLib.ColorHelper.normalize(e);this.resources.expandUniforms.uniforms.uColor=new Float32Array([i.red,i.green,i.blue]),this.resources.expandUniforms.uniforms.uExpandSquared=this.ƀdi*this.ƀdi,this.padding=this.ƀdi;}};var Oe=class extends W__namespace.Filter{static{h(this,"GlowFilter");}constructor(t){super({resolution:k,compatibleRenderers:W__namespace.RendererType.WEBGL});let e={blurRadius:1,expand:0,color:helpersLib.ColorHelper.white,...t};this.ƀdj=new Ae(e.expand,e.color);let i=helpersLib.Comparator.isNumber(e.blurRadius)?new helpersLib.Vector(e.blurRadius,e.blurRadius):e.blurRadius;this.ƀak=new Ft(i),this.padding=Math.max(i.x,i.y)+e.expand,this.ƀak.blendMode="add";}apply(t,e,i,s){let r=W__namespace.TexturePool.getSameSizeTexture(e);this.ƀdj.apply(t,e,r,true),this.ƀak.apply(t,r,i,s),W__namespace.TexturePool.returnTexture(r);}};var re=class n{static{h(this,"GlowSpriteGenerator");}static{this.ƀew=new Map;}static createGlowSpriteFromSprite(t,e,i){let s=this.ƀbj(e),r=helpersLib.Comparator.isNumber(s.blurRadius)?new helpersLib.Vector(s.blurRadius,s.blurRadius):s.blurRadius,o=this.ƀef(t.texture,r,s.expand,s.color,i),a=new W__namespace.Sprite(o);return this.ƀjy(a,helpersLib.Vector.fromVec2(t.anchor),Math.max(r.x,r.y)+s.expand),a.alpha=s.glowAlpha,a.blendMode=s.blendMode,a}static ƀef(t,e,i,s,r){if(!t.id)throw new Error("GlowSpriteGenerator: baseTexture should have an id");if(r){let o=`${t.id}-${i}-${e.x}-${e.y}-${s.r}-${s.g}-${s.b}`;if(n.ƀew.has(o))return n.ƀew.get(o);{let a=this.ƀeg(t,e,i,s);return n.ƀew.set(o,a),a}}else return this.ƀeg(t,e,i,s)}static ƀeg(t,e,i,s){let r=new W__namespace.Sprite(t);r.filters=[new Oe({blurRadius:e,expand:i,color:s})];let o=new W__namespace.Container;o.addChild(r);let a=Math.max(e.x,e.y)+i,l=x.instance.generateTexture({target:o,frame:new W__namespace.Rectangle(-a,-a,r.width+a*2,r.height+a*2)});return l.id=G.insertAsset(l),o.destroy({children:true}),l}static ƀjy(t,e,i){let s=(i+(t.width-i*2)*e.x)/t.width,r=(i+(t.height-i*2)*e.y)/t.height;t.anchor.set(s,r);}static ƀbj(t){let e={glowAlpha:1,blurRadius:5,expand:0,color:helpersLib.ColorHelper.white,blendMode:"add"};return t&&(e={...e,...t}),e}};T.onHardReset.subscribe(()=>{re.ƀew.clear();}).attachToRoot();var et=class n extends d{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 n(e)}static createSnapshotSprite(t){let e=t.ƀiq,i=e.parent;i&&i.removeChild(e);let s=x.instance.generateTexture({target:e,resolution:2,antialias:true,textureSourceOptions:{scaleMode:"linear"}});i&&i.addChild(e);let o={id:G.insertAsset(s),scale:t.scale,size:t.size,anchor:helpersLib.Vector.zero,destroyAssetOnDestroy:true};return new n(o,{ignoreAnchor:true})}constructor(t,e={}){if(super(),this.ƀll=1,!t)throw new Error("Sprite: spriteDefinition cannot be nullish!");this.ƀkr=t,this.pixiSprite=new W__namespace.Sprite(G.getAsset(t.id)),this.ƀiq.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.ƀkr.destroyAssetOnDestroy&&(G.destroyAsset(this.ƀkr.id),this.ƀis&&G.destroyAsset(this.ƀis.texture.id)),this.ƀgr?.destroy(),this.ƀam?.destroy(),this.ƀis&&!this.ƀis.destroyed&&this.ƀis.destroy());}setTextureScale(t){return this.textureScale=t,this}get textureScale(){return this.ƀll}set textureScale(t){this.ƀll=t,this.pixiSprite.scale.set(t);}get size(){return new helpersLib.Vector(this.pixiSprite.width,this.pixiSprite.height)}getMask(){return this.pixiSprite}set interactive(t){super.interactive=t,t&&this.ƀkr.boundingShapes&&!this.ƀiq.hitArea&&(this.ƀiq.hitArea=new ws(this.ƀkr.boundingShapes,this.size,helpersLib.Vector.fromVec2(this.ƀkr.anchor)));}setMipmap(t){return this.mipmap=t,this}get mipmap(){return this.pixiSprite.texture.source.autoGenerateMipmaps}set mipmap(t){this.pixiSprite.texture.source.autoGenerateMipmaps=t;}setBlendMode(t){return this.blendMode=t,this}get blendMode(){return this.pixiSprite.blendMode}set blendMode(t){this.pixiSprite.blendMode=t;}setTint(t){return this.tint=t,this}get tint(){return new W__namespace.Color(this.pixiSprite.tint).toRgb()}set tint(t){this.pixiSprite.tint=t;}setShapeAlpha(t){return this.pixiSprite.alpha=t,this}get shapeAlpha(){return this.pixiSprite.alpha}set shapeAlpha(t){this.pixiSprite.alpha=t;}setGlowAlpha(t){return this.glowAlpha=t,this}get glowAlpha(){if(this.ƀis)return this.ƀis.alpha;throw new Error("Sprite: getGlowFilterAlpha cannot be called before glow filter is added.")}set glowAlpha(t){if(this.ƀis)this.ƀis.alpha=t;else throw new Error("Sprite: setGlowFilterAlpha cannot be called before glow filter is added.")}getAlignmentVector(t){let e=helpersLib.Vector.fromVec2(this.ƀkr.anchor).to(t);return new helpersLib.Vector(this.size.x*e.x,this.size.y*e.y)}setGlowEffect(t){return this.ƀis&&(this.ƀis.destroy(),this.ƀis=void 0),t&&(this.ƀis=re.createGlowSpriteFromSprite(this.pixiSprite,t,!this.ƀkr.destroyAssetOnDestroy),this.ƀis.position.set(this.pixiSprite.x,this.pixiSprite.y),this.ƀis.scale.set(this.pixiSprite.scale.x,this.pixiSprite.scale.y),this.ƀiq.addChild(this.ƀis)),this}showBoundingShape(t){return t?this.ƀam||(this.ƀam=this.ƀby().setAlpha(.3).setTint({r:0,g:0,b:200}).displayParent(this)):this.ƀam&&(this.ƀam.destroy(),this.ƀam=void 0),this}getBoundingMask(){if(!this.ƀgr){if(!this.ƀkr.boundingShapes)throw new Error("Sprite: cropOverflowingParts cannot be used without polygonDefinition!");this.ƀgr=this.ƀby(),this.ƀgr.displayParent(this);}return this.ƀgr}ƀby(){if(!this.ƀkr.boundingShapes)throw new Error("Sprite: bounding shape cannot be created without polygonDefinition!");return A.createPolygon(this.ƀkr.boundingShapes,helpersLib.ColorHelper.white).toSprite().attach(this)}download(){let t=x.instance.renderer.extract.canvas(this.ƀiq);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}},ws=class{static{h(this,"CompositeHitArea");}constructor(t,e,i){this.ƀkh=t.map(s=>new W__namespace.Polygon(s.map(r=>new W__namespace.Point(r.x,r.y))));}contains(t,e){return this.ƀkh.some(i=>i.contains(t,e))}};var Me=class{static{h(this,"DashedLineHelper");}static getLines(t,e,i){let s=helpersLib.Vector.fromTo(t,e),r=s.normalize(),o=s.length-i.lineStartGap-i.lineEndGap,a=[];if(o<=0)return a;let l=t.add(r.normalize(i.lineStartGap));if(o<=i.dashGap+i.dashLength*.5)return a.push({from:l,to:l.add(r.normalize(o))}),a;let c=o-i.dashGap,p=i.dashLength+i.dashGap,f=Math.floor(c/p),y=c-p*f;f>=1&&y<i.dashLength&&(y+=p,f--);let v=r.normalize(y/2),w=r.normalize(i.dashGap);if(a.push({from:l,to:l.add(v)}),l=l.add(v),f>0){let M=r.normalize(i.dashLength);helpersLib.ArrayHelper.createEmptyArray(f).forEach(()=>{l=l.add(w),a.push({from:l,to:l.add(M)}),l=l.add(M);});}return l=l.add(w),a.push({from:l,to:l.add(v)}),a}};var A=class n extends d{static{h(this,"Graphics");}static{this.ƀda=new Map;}static createArrow(t,e){let i=new W__namespace.Graphics;return [[{x:0,y:-t/2},{x:t*3/8,y:-t/8},{x:t/4,y:0},{x:0,y:-t/4},{x:-t/4,y:0},{x:-t*3/8,y:-t/8}],[{x:0,y:-t/4},{x:t/8-t/30,y:-t/8-t/30},{x:t/8-t/30,y:t*7/16},{x:-t/8+t/30,y:t*7/16},{x:-t/8+t/30,y:-t/8-t/30}]].forEach(r=>{i.poly(r.map(o=>new W__namespace.Point(o.x,o.y))).fill(e);}),new n(i,JSON.stringify({type:"arrow",size:t,color:e}))}static createDashedLine(t,e,i){let s={width:2,dashLength:10,dashGap:4,lineStartGap:0,lineEndGap:0,color:helpersLib.ColorHelper.white,...i},r=new W__namespace.Graphics;return Me.getLines(t,e,s).forEach(a=>{r.moveTo(a.from.x,a.from.y).lineTo(a.to.x,a.to.y);}),r.stroke({width:s.width,color:s.color}),new n(r,JSON.stringify({type:"dashedLine",from:t,to:e,options:s}))}static createVector(t,e,i){let s=new W__namespace.Graphics;return s.moveTo(t.x,t.y),s.lineTo(e.x,e.y),s.stroke({width:2,color:i}),s.circle(t.x,t.y,3),s.fill(helpersLib.ColorHelper.white),s.stroke({width:1,color:i}),new n(s,JSON.stringify({type:"line",start:t,end:e,color:i}))}static createRectangleBorders(t,e,i){let s=new W__namespace.Graphics;return s.rect(0,0,t.x,e),s.rect(0,e,e,t.y-e*2),s.rect(t.x-e,e,e,t.y-e*2),s.rect(0,t.y-e,t.x,e),s.fill(i),new n(s,JSON.stringify({type:"rectangle-borders",size:t,borderSize:e,color:i}))}static createRectangle(t,e=helpersLib.ColorHelper.white){let i=new W__namespace.Graphics;return i.rect(0,0,t.x,t.y).fill(e),new n(i,JSON.stringify({type:"rectangle",size:t,color:e}))}static createCircle(t,e){let i=new W__namespace.Graphics;return i.circle(0,0,t).fill(e),new n(i,JSON.stringify({type:"circle",radius:t,color:e}))}static createElipse(t,e){let i=new W__namespace.Graphics;return i.ellipse(0,0,t.x,t.y).fill(e),new n(i,JSON.stringify({type:"elipse",size:t,color:e}))}static createPolygon(t,e){let i=new W__namespace.Graphics,s=JSON.stringify({type:"polygon",polygon:t,color:e});return t.forEach(r=>{i.poly(r.map(o=>new W__namespace.Point(o.x,o.y))).fill(e);}),new n(i,s)}static createRegularPolygon(t,e,i){let s=new W__namespace.Graphics,r=new helpersLib.Radian(helpersLib.PI_360/t);s.moveTo(e,0);for(let o=1;o<=t;o++){let l=r.multiply(o).vector.normalize(e),c=e+l.x,p=e+l.y;s.lineTo(c,p);}return s.fill(i),new n(s,JSON.stringify({type:"regular-polygon",sides:t,radius:e,color:i}))}constructor(t,e){super(),this.ƀiq.addChild(t),this.pixiGraphics=t,this.ƀap=e;}destroy(){this.destroyed||(super.destroy(),!this.pixiGraphics.destroyed&&this.pixiGraphics.destroy());}toSprite(t){let e={cacheName:this.ƀap,cache:false,...t},i=this.ƀes(e.cacheName,e.cache),s={id:i.textureID,scale:1,size:i.bounds,anchor:{x:0,y:0},destroyAssetOnDestroy:!e.cache},r=new et(s,{texturePosition:i.bounds,ignoreAnchor:true});return this.attachToRoot(),this.destroy(),r}ƀes(t,e){if(e){let i=n.ƀda.get(t);return i||(i=this.ƀck(),n.ƀda.set(t,i)),i}else return this.ƀck()}ƀck(){let t=x.instance.generateTexture(this.pixiGraphics);t.id=G.insertAsset(t);let e=this.pixiGraphics.getBounds();return {textureID:t.id,bounds:new helpersLib.Vector(e.x,e.y)}}};var li=class{static{h(this,"AnimationEaseInOutFlatter");}start(){}multiplierFunction(t){return 3*(1-t)*Math.pow(t,2)+Math.pow(t,3)}},Ot=class n extends d{static{h(this,"ScrollMaskUI");}static{this.ƀda=new Map;}constructor(t,e,i,s=exports.ScrollDirection.Vertical){if(super(),i<0)throw new Error("The padding of the scroll mask cannot be lower than '0'");if(e.y<i*2)throw new Error(`The height of the scroll mask cannot be lower than '${i*2}'`);let r=new d;s===exports.ScrollDirection.Horizontal?this.ƀce(e,i,r):this.ƀcl(e,i,r),this.ƀgr=et.createSnapshotSprite(r).attach(this),r.destroy(),t.setMask(this.ƀgr);}ƀcl(t,e,i){e>0&&this.ƀcb(new helpersLib.Vector(t.x,e)).displayParent(i).attach(i),A.createRectangle(new helpersLib.Vector(t.x,t.y-e*2),helpersLib.ColorHelper.white).toSprite().setPosition(new helpersLib.Vector(0,e),{round:false}).displayParent(i).attach(i),e>0&&this.ƀcb(new helpersLib.Vector(t.x,e)).setPosition(new helpersLib.Vector(t.x,t.y),{round:false}).setRotation(helpersLib.Radian.get180).displayParent(i).attach(i);}ƀce(t,e,i){e>0&&this.ƀcb(new helpersLib.Vector(t.y,e)).setPosition(new helpersLib.Vector(0,t.y),{round:false}).setRotation(helpersLib.Radian.get270).displayParent(i).attach(i),A.createRectangle(new helpersLib.Vector(t.x-e*2,t.y),helpersLib.ColorHelper.white).toSprite().setPosition(new helpersLib.Vector(e,0),{round:false}).displayParent(i).attach(i),e>0&&this.ƀcb(new helpersLib.Vector(t.y,e)).setPosition(new helpersLib.Vector(t.x,0),{round:false}).setRotation(helpersLib.Radian.get90).displayParent(i).attach(i);}ƀcb(t){let i={id:this.ƀcc(t.y),scale:1,size:t,anchor:{x:0,y:0}};return new et(i,{textureSize:t,ignoreAnchor:true})}ƀcc(t){let e=JSON.stringify({type:"gradient",length:t}),i=n.ƀda.get(e);if(!i){let s=document.createElement("canvas");s.width=1,s.height=t;let r=s.getContext("2d");if(r){let o=new li;helpersLib.ArrayHelper.createIntegerArray(t).forEach(l=>{let c=`rgba(255, 255, 255, ${o.multiplierFunction(l/t)})`;r.fillStyle=c,r.fillRect(0,l,1,1);});let a=W__namespace.Texture.from(s);i=G.insertAsset(a),n.ƀda.set(e,i);}else throw new Error("Canvas context is null")}return i}};exports.SlideStateAnimationState=void 0;(function(n){n[n.Appear=1]="Appear",n[n.Disappear=2]="Disappear";})(exports.SlideStateAnimationState||(exports.SlideStateAnimationState={}));var De=class extends actionsLib.Attachable{static{h(this,"SlideStateAnimation");}onStateChange(t){return this.ƀhs.subscribe(e=>t(e.state,e.index)).attach(this),this}onValueChange(t){return this.ƀhu.subscribe(e=>t(e.value,e.index)).attach(this),this}get state(){return {value:this.ƀky.state.value,item:this.ƀft,nextItem:this.ƀhj,queuedItem:this.ƀky.state.queuedItem,animationState:this.ƀo}}constructor(t){super(),this.ƀo="idle",this.ƀhs=new actionsLib.Action,this.ƀhu=new actionsLib.Action,this.ƀhx={duration:500,animation:b.easeInOutCubic,...t},this.ƀky=new jt({duration:this.ƀhx.duration,animation:this.ƀhx.animation}).onStateChange((e,i)=>this.ƀez(e,i)).onValueChange(e=>this.ƀfe(e)).attach(this);}setIndex(t,e){if(!helpersLib.Comparator.isInteger(t))throw new Error("SlideStateAnimation: index must be an integer!");this.ƀft===void 0?(this.ƀft=t,this.ƀhs.trigger({state:exports.SlideStateAnimationState.Appear,index:t}),this.ƀky.setItem(t,e)):this.ƀft!==t?this.ƀhj!==t?this.ƀo==="idle"?(this.ƀo=t>this.ƀft?"transitionForward":"transitionBackward",this.ƀhj=t,this.ƀhs.trigger({state:exports.SlideStateAnimationState.Appear,index:this.ƀhj}),this.ƀky.setItem(t,e)):this.ƀky.setItem(t,e):this.ƀo==="reverting"&&this.ƀhj===t&&(this.ƀo=t>this.ƀft?"transitionForward":"transitionBackward",this.ƀky.setItem(t,e)):(this.ƀo==="transitionForward"||this.ƀo==="transitionBackward")&&(this.ƀo="reverting",this.ƀky.setItem(t,e));}ƀez(t,e){switch(this.ƀft!==void 0&&this.ƀft!==t&&this.ƀft!==e&&this.ƀhs.trigger({state:exports.SlideStateAnimationState.Disappear,index:this.ƀft}),this.ƀhj!==void 0&&this.ƀhj!==t&&this.ƀhj!==e&&this.ƀhs.trigger({state:exports.SlideStateAnimationState.Disappear,index:this.ƀhj}),e!==void 0&&e!==this.ƀft&&e!==this.ƀhj&&this.ƀhs.trigger({state:exports.SlideStateAnimationState.Appear,index:e}),this.ƀo){case "idle":break;case "transitionForward":case "transitionBackward":e===void 0?(this.ƀo="idle",this.ƀft=this.ƀhj,this.ƀhj=void 0):this.ƀft!==t&&this.ƀfa(t,e);break;case "reverting":e===void 0?(this.ƀo="idle",this.ƀhj=void 0):this.ƀft!==e&&this.ƀfa(t,e);break;default:{this.ƀo;throw new Error}}}ƀfa(t,e){this.ƀft=t,this.ƀhj=e,this.ƀhu.trigger({value:0,index:this.ƀft}),this.ƀo=this.ƀft<this.ƀhj?"transitionForward":"transitionBackward";}ƀfe(t){let e=1;(this.ƀo==="transitionBackward"||this.ƀo==="reverting"&&this.ƀft!==void 0&&this.ƀhj!==void 0&&this.ƀft>this.ƀhj)&&(e=-1),(this.ƀo==="idle"||t!==0)&&this.ƀhu.trigger({value:helpersLib.NumberHelper.ensurePositiveZero(-e*t),index:this.ƀft}),this.ƀhj!==void 0&&this.ƀhu.trigger({value:helpersLib.NumberHelper.ensurePositiveZero(e*(1-t)),index:this.ƀhj});}};exports.ScrollDirection=void 0;(function(n){n[n.Horizontal=1]="Horizontal",n[n.Vertical=2]="Vertical";})(exports.ScrollDirection||(exports.ScrollDirection={}));var ci=class extends d{static{h(this,"SlideInContentByIndex");}constructor(t,e){super(),this.ƀca=t,this.ƀcw="x",this.ƀbq=new Map,this.ƀhx={duration:300,animation:b.easeInOutCubic,size:new helpersLib.Vector(500,500),margin:20,direction:exports.ScrollDirection.Horizontal,...e};let i=this.ƀhx.direction===exports.ScrollDirection.Horizontal?new helpersLib.Vector(this.ƀhx.size.x+this.ƀhx.margin*2,this.ƀhx.size.y):new helpersLib.Vector(this.ƀhx.size.x,this.ƀhx.size.y+this.ƀhx.margin*2),s=new d().setPosition(this.ƀhx.direction===exports.ScrollDirection.Horizontal?new helpersLib.Vector(-this.ƀhx.margin,0):new helpersLib.Vector(0,-this.ƀhx.margin),{round:false}).displayParent(this).attach(this);this.ƀcf(i,this.ƀhx.margin,this.ƀhx.direction,s),this.ƀcw=this.ƀhx.direction===exports.ScrollDirection.Horizontal?"x":"y",this.ƀky=new De({duration:this.ƀhx.duration,animation:this.ƀhx.animation}).onStateChange((r,o)=>{if(r===exports.SlideStateAnimationState.Appear){let a=new d().displayParent(this).attach(this);this.ƀbq.set(o,a),this.ƀca({index:o,container:a});}else {let a=this.ƀbq.get(o);a&&(a.destroy(),this.ƀbq.delete(o));}}).onValueChange((r,o)=>{let a=this.ƀbq.get(o);if(a){let l={x:0,y:0};l[this.ƀcw]=i[this.ƀcw]*r+this.ƀhx.margin,a.setPosition(helpersLib.Vector.fromVec2(l),{round:false});}}).attach(this),this.addChildTo=s;}setIndex(t,e){return this.ƀky.setIndex(t,e),this}ƀcf(t,e,i,s){new Ot(s,new helpersLib.Vector(t.x,t.y),e,i).attach(this);}},qi=class extends ci{static{h(this,"SlideInContent");}constructor(t,e,i){super(s=>{let r=this.indexToItem.get(s.index);if(r)e({index:s.index,item:r,container:s.container});else throw new Error(`SlideInContent: The item with index '${s.index}' is not part of the items list`)},i),this.itemToIndex=new Map,this.indexToItem=new Map,t.forEach((s,r)=>{this.itemToIndex.set(s,r),this.indexToItem.set(r,s);});}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 oe=class{static{h(this,"VectorSet");}constructor(){this.ƀly=new Map;}add(t){let e=this.ƀly.get(t.x);e||(e=new Set,this.ƀly.set(t.x,e)),e.add(t.y);}has(t){let e=this.ƀly.get(t.x);return e?e.has(t.y):false}delete(t){let e=this.ƀly.get(t.x);return e?e.delete(t.y):false}};var pi=class{static{h(this,"DeltaTime");}static adjustMultiplier(t,e){return Math.pow(t,e)}};var _=class{static{h(this,"PositionToGridPositionConverter");}static areaToGridArea(t,e){return new helpersLib.Rectangle(this.positionToGridPosition(t.topLeft,e),this.positionToGridPosition(t.bottomRight,e))}static positionToGridPosition(t,e){return t.divideNumber(e).floor()}static gridPositionToPosition(t,e){return t.add(new helpersLib.Vector(.5,.5)).multiplyNumber(e)}};var ne=class{static{h(this,"ClosestAvailableSpaceHelper");}static findByConvertingGridSpace(t,e,i){let s=new helpersLib.Vector(Math.ceil(e.size.x/i)-1,Math.ceil(e.size.y/i)-1),r=_.areaToGridArea(e,i);if(this.ƀax(t,r))return helpersLib.Vector.zero;let o=t.movePositionInsideGrid(r.topLeft),a=helpersLib.Vector.fromTo(r.topLeft,o),l=this.find(t,o,s);if(l){let c=l.add(a),p=helpersLib.Vector.fromTo(r.topLeft.multiplyNumber(i),e.topLeft);return new helpersLib.Vector(c.x*i+((s.x+1)*i-e.size.x)/2-p.x,c.y*i+((s.y+1)*i-e.size.y)/2-p.y)}}static find(t,e,i){let s=new oe,r=new helpersLib.Queue(e);for(;r.notEmpty;){let o=r.pop();s.add(o);let a=new helpersLib.Rectangle(o,o.add(i));if(this.ƀax(t,a))return helpersLib.Vector.fromTo(e,o);t.getNeighborPositions(o,"orthogonal").forEach(l=>{s.has(l)||r.add(l);});}}static ƀax(t,e){if(!t.isAreaWithinBounds(e))return false;for(let i=e.topLeft.y;i<=e.bottomRight.y;i++)for(let s=e.topLeft.x;s<=e.bottomRight.x;s++)if(!t.get(new helpersLib.Vector(s,i)))return false;return true}};var tr=Math.SQRT2-1,Bs=class{static{h(this,"PathfinderNode");}constructor(t,e){this.position=t,this.distanceToEnd=e,this.closed=false,this.distanceFromStart=Number.MAX_SAFE_INTEGER,this.parent=void 0;}get pathLength(){return this.distanceFromStart+this.distanceToEnd}getStepCost(t){return this.position.x!==t.position.x&&this.position.y!==t.position.y?Math.SQRT2:1}createSolutionPath(t){let e=[],i=this;for(;i!==void 0;)e.push(i.position),i=i.parent;return e.reverse(),{directPathAvailable:t,path:e}}},Gs=class{static{h(this,"PathfinderGrid");}constructor(t,e,i,s){this.ƀey=t,this.ƀlf=i,this.ƀhi=s,this.ƀhw=new helpersLib.BinaryHeap("min"),this.ƀhl=new helpersLib.Grid({size:t.size,defaultValue:void 0});let r=this.ƀcg(e);r.distanceFromStart=0,this.ƀhw.add(r.pathLength,r),this.ƀaf=r;}get hasOpenNodes(){return this.ƀhw.size>0}getNeighbors(t){let e=[];for(let i of this.ƀey.getNeighborPositions(t.position,this.ƀhi))if(this.ƀey.get(i)){let s=this.ƀhl.get(i)??this.ƀcg(i);s.closed||e.push(s);}return e}popLowestPathCostNode(){let t=this.ƀhw.pop();return t.closed=true,t.distanceToEnd<this.ƀaf.distanceToEnd&&(this.ƀaf=t),t}changeNodeCost(t,e,i){t.distanceFromStart=e,t.parent=i,this.ƀhw.updatePriority(t,t.pathLength)||this.ƀhw.add(t.pathLength,t);}getBestClosedNode(){return this.ƀaf}ƀcg(t){let e=Math.abs(t.x-this.ƀlf.x),i=Math.abs(t.y-this.ƀlf.y),s=this.ƀhi==="orthogonal"?e+i:e>i?e+tr*i:i+tr*e,r=new Bs(t,s);return this.ƀhl.isPointWithinBounds(t)&&this.ƀhl.set(t,r),r}},ae=class{static{h(this,"PathFinder");}static findPath(t,e,i,s){let r=new Gs(t,e,i,s);for(;r.hasOpenNodes;){let o=r.popLowestPathCostNode();if(o.position.isEqual(i))return o.createSolutionPath(true);for(let a of r.getNeighbors(o)){let l=o.distanceFromStart+o.getStepCost(a);l<a.distanceFromStart&&r.changeNodeCost(a,l,o);}}return r.getBestClosedNode().createSolutionPath(false)}};var Wt=[-1,0,0,1,-1,-1,1,1],$t=[0,-1,1,0,-1,1,-1,1],ir=[10,10,10,10,14,14,14,14],ui=Wt.map((n,t)=>new helpersLib.Vector(n,$t[t]).radian),he=class{static{h(this,"VectorFieldPathFinder");}constructor(t,e){this.ƀle=t;let i=e.width,s=e.height,r=this.ƀei(e.size);this.ƀmh=i,this.ƀfh=s,this.ƀfi=r;let o=i*s,a=new Uint8Array(o),l=new Int32Array(o),c=e.snapshot();for(let w=0;w<s;w++){let M=c[w],L=w*i;for(let I=0;I<i;I++)M[I]?(a[L+I]=1,l[L+I]=r):l[L+I]=-1;}this.ƀz=a,this.ƀmg=l,this.ƀcv=new Uint8Array(o),this.ƀcu=new Array(o);let p=[-1,-i,i,1,-i-1,i-1,-i+1,i+1],f=new Array(r),y=e.cropAreaOutsideOfTheGrid(t),v=[];for(let w=y.topLeft.y;w<=y.bottomRight.y;w++)for(let M=y.topLeft.x;M<=y.bottomRight.x;M++)l[w*i+M]=0,v.push(w*i+M);f[0]=v;for(let w=0;w<r;w++){let M=f[w];if(M){f[w]=void 0;for(let L=0;L<M.length;L++){let I=M[L];if(l[I]!==w)continue;let K=I%i;if(K>0&&K<i-1&&I>=i&&I<o-i){let _t=w+10,$=w+14;for(let H=0;H<8;H++){let j=I+p[H],at=H<4?_t:$;if(at<l[j]){l[j]=at;let Rt=f[at];Rt?Rt.push(j):f[at]=[j];}}}else {let _t=(I-K)/i;for(let $=0;$<8;$++){let H=K+Wt[$],j=_t+$t[$];if(H<0||j<0||H>=i||j>=s)continue;let at=j*i+H,Rt=w+ir[$];if(Rt<l[at]){l[at]=Rt;let Vi=f[Rt];Vi?Vi.push(at):f[Rt]=[at];}}}}}}for(let w=0;w<o;w++)l[w]===-1&&(l[w]=r);}getDirectionToTarget(t){if(t.isInsideRectangle(this.ƀle))return;let e=this.ƀmh,i=Math.round(t.x),s=Math.round(t.y);i=Math.max(0,Math.min(e-1,i)),s=Math.max(0,Math.min(this.ƀfh-1,s));let r=s*e+i;if(this.ƀcv[r]===1)return this.ƀcu[r];let o=this.ƀaq(i,s,r);return this.ƀcv[r]=1,this.ƀcu[r]=o,o}ƀaq(t,e,i){let s=this.ƀmh,r=this.ƀfh,o=[];for(let a=0;a<8;a++){let l=t+Wt[a],c=e+$t[a];l>=0&&c>=0&&l<s&&c<r&&o.push(a);}if(this.ƀmg[i]>=this.ƀfi){let a=o.filter(l=>this.ƀz[(e+$t[l])*s+t+Wt[l]]===1);if(a.length===0)return;if(a.length<o.length)return helpersLib.Radian.getAverage(...a.map(l=>ui[l]))}return this.ƀdy(t,e,o)}ƀdy(t,e,i){let s=this.ƀmh,r=[],o=this.ƀfi;for(let v=0;v<i.length;v++){let w=i[v],M=this.ƀmg[(e+$t[w])*s+t+Wt[w]];if(M>=this.ƀfi)continue;let L=M+ir[w];L<o?(r.length=0,r.push(w),o=L):L===o&&r.push(w);}if(r.length===0)return;let a=0,l=0;for(let v=0;v<r.length;v++)a+=Wt[r[v]],l+=$t[r[v]];if(a===0&&l===0)return ui[helpersLib.Random.pickRandomElement(r)];let c=1/Math.sqrt(a*a+l*l),p=t+Math.round(a*c),f=e+Math.round(l*c);return p>=0&&f>=0&&p<s&&f<this.ƀfh&&this.ƀz[f*s+p]===1?new helpersLib.Vector(a,l).radian:ui[helpersLib.Random.pickRandomElement(r)]}get t(){let t=[];for(let e=0;e<this.ƀfh;e++){let i=new Array(this.ƀmh);for(let s=0;s<this.ƀmh;s++)i[s]=this.ƀmg[e*this.ƀmh+s];t.push(i);}return new helpersLib.Grid(t)}ƀei(t){return (t.x+t.y)*20}};var R=class n{static{h(this,"AudioAssets");}static{this.ƀao=new Map;}static{this.context=new AudioContext;}static async load(t){await Promise.all(t.map(e=>fetch(e.url).then(i=>i.arrayBuffer()).then(i=>this.context.decodeAudioData(i)).then(i=>this.ƀao.set(e.id,i))));}static createSource(t){let e=n.ƀdx(t),i=n.context.createBufferSource();return i.buffer=e,i}static ƀdx(t){let e=this.ƀao.get(t);if(!e)throw new Error(`Audio: Sound with id ${t} was not loaded.`);return e}};T.onHardReset.subscribe(()=>{R.context=new AudioContext,R.ƀao.clear();}).attachToRoot();var rt=1e3,it=class n{static{h(this,"Audio");}static ƀkb(){return this.ƀfw=new n,this.ƀfw}constructor(){this.ƀgu=R.context.createGain(),this.ƀgt=R.context.createGain(),this.ƀhh=R.context.createGain(),this.ƀkk=R.context.createGain(),this.ƀgu.connect(R.context.destination),this.ƀgt.connect(this.ƀgu),this.ƀhh.connect(this.ƀgt),this.ƀkk.connect(this.ƀgt),this.ƀgv=new O(this.ƀgu.gain,"value",{duration:500*2,animation:b.easeIn,reAnimateHandling:exports.ReAnimateHandlingType.CompletePrevious,completionHandling:exports.AnimationsCompletionHandlingType.StayInCurrentState}),this.ƀgv.set({value:0});}setVolumes(t){this.ƀgt.gain.value=t.master,this.ƀhh.gain.value=t.music,this.ƀkk.gain.value=t.sound;}appear(t,e="ease"){switch(e){case "ease":return this.ƀgv.set({value:t?0:1}),this.ƀgv.animate({value:t?1:0}).chainToRoot();case "instant":return this.ƀgv.set({value:t?1:0}),actionsLib.SingleEvent.instant();default:{throw new Error}}}};T.onHardReset.subscribe(()=>{it.ƀkb();}).attachToRoot();var Fs=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r};exports.CameraGateway=class yt extends ht(){static{h(this,"CameraGateway");}};exports.CameraGateway=Fs([u()],exports.CameraGateway);var Ls=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},Bt=class extends ht(){static{h(this,"CameraViewGateway");}};Bt=Ls([u()],Bt);var sr;(function(n){n.BackgroundScreen="backgroundScreen",n.Background="background",n.Main="main",n.Foreground="foreground",n.ForegroundScreen="foregroundScreen";})(sr||(sr={}));exports.FocusingAnimation=void 0;(function(n){n[n.Instant=1]="Instant",n[n.EaseInOut=2]="EaseInOut",n[n.EaseOut=3]="EaseOut";})(exports.FocusingAnimation||(exports.FocusingAnimation={}));var le=class{static{h(this,"Camera");}get position(){return this.ƀas.getCameraPosition()}constructor(){this.ƀas=E.get(exports.CameraGateway),this.ƀaw=E.get(Bt),this.ƀas.createCamera(),this.layers=this.ƀaw.getLayers();}setPosition(t){this.ƀas.setPosition(t);}setTransition(t){this.ƀas.setTransition(t);}appear(t,e="alpha",i=0){return this.ƀaw.appear(t,e,i)}screenPositonToStagePosition(t){return this.ƀaw.screenPositonToStagePosition(t)}};var x=class n{static{h(this,"Game");}static get instance(){return this.ƀfw}static{this.pause=actionsLib.Reducer.createOr();}static{this.freeze=actionsLib.Reducer.createOr();}static get camera(){return this.ƀar}static get audio(){return this.ƀy}static appear(t,e){let i=e?.audio??"ease",s=e?.camera??"alpha";return actionsLib.ActionLib.all([this.audio.appear(t,i),this.camera.appear(t,s,i!=="instant"?0:500)]).mapToVoid().chainToRoot()}static get time(){return g.ƀlm}static get setupOptions(){return this.ƀke}constructor(t){if(this.ƀjq=new actionsLib.Variable(helpersLib.Vector.zero),this.screenSize=this.ƀjq.notifier,this.ƀjr=new actionsLib.Variable(helpersLib.Vector.zero),this.screenSizeCenter=this.ƀjr.notifier,this.devMode=false,n.ƀfw)throw new Error("There can be only one Game instance!");this.ƀbm={screenResolution:void 0,maxScreenResolution:void 0,devMode:false,backgroundColor:helpersLib.ColorHelper.black,antialias:false,resolution:1,...t},this.devMode=this.ƀbm.devMode||false,this.ƀip=new W__namespace.Application;let e=n.pause.effect(false).attachToRoot();n.freeze.subscribe(i=>{e.update(i),i?R.context.suspend():R.context.resume();}).attachToRoot();}async setup(t){n.ƀke=t;let e=helpersLib.JsonHelper.removeUndefinedProperties({backgroundColor:this.ƀbm.backgroundColor,autoStart:false,antialias:this.ƀbm.antialias,resolution:this.ƀbm.resolution,width:this.ƀbm.screenResolution?.width,height:this.ƀbm.screenResolution?.height,useBackBuffer:true,powerPreference:"high-performance",eventFeatures:{globalMove:false}});await this.ƀip.init(e);let i=document.body.appendChild(this.ƀip.canvas);this.ƀka(i),await Promise.all([G.loadGameAssets(t.spriteAssetDefinitions),G.loadGameAssets(t.fontAssetDefinitions),R.load(t.soundAssetDefinitions)]),n.ƀfw=this,this.renderer=this.ƀip.renderer,globalThis.ƀa=this.ƀip,this.ƀfc(),n.ƀar=new le,n.ƀy=it.ƀkb(),this.ƀip.start(),this.ƀip.ticker.add(()=>{n.freeze.value||g.triggerUpdateTick(this.ƀip.ticker.deltaMS);}),this.devMode&&await this.renderer.layout.enableDebug(true);}generateTexture(t){let e=this.renderer.layout,i=e.autoUpdate;e.autoUpdate=false;let s=this.renderer.generateTexture(t);return e.autoUpdate=i,s}setResolution(t){if(this.ƀip.renderer.resolution!==t){this.ƀip.renderer.resolution=t;let e=this.ƀer();this.ƀip.renderer.resize(e.x,e.y);}}ƀfc(){this.ƀde(),this.ƀjz(),window.addEventListener("resize",t=>{this.ƀde(),this.ƀjz();});}ƀde(){let t=this.ƀer();(t.x!==this.ƀip.screen.width||t.y!==this.ƀip.screen.height)&&this.ƀip.renderer.resize(t.x,t.y);}ƀjz(){let t=new helpersLib.Vector(this.ƀip.screen.width,this.ƀip.screen.height);this.ƀjq.value=t,this.ƀjr.value=t.multiplyNumber(.5).round();}ƀer(){let t=this.ƀbm.screenResolution?.width??window.innerWidth,e=this.ƀbm.screenResolution?.height??window.innerHeight;return this.ƀbm.maxScreenResolution&&(t=Math.min(t,this.ƀbm.maxScreenResolution.width),e=Math.min(e,this.ƀbm.maxScreenResolution.height)),new helpersLib.Vector(t,e)}ƀka(t){this.ƀbm.maxScreenResolution&&(t.style.maxWidth=`${this.ƀbm.maxScreenResolution?.width}px`,t.style.maxHeight=`${this.ƀbm.maxScreenResolution?.height}px`),t.style.width="100%",t.style.height="100%";}};var ce=class n extends actionsLib.IDAttachable{static{h(this,"Sound");}static createByName(t,e){let i=x.setupOptions.soundDefinitions[t];if(!i)throw new Error(`Sound: Could not find sound definition with name ${t}.`);return new n(i,e)}get volume(){return this.ƀdt.gain.value}set volume(t){this.setVolume(t);}setVolume(t){return this.ƀdt.gain.value=t,this}constructor(t,e){super(),this.ƀkl=t,this.ƀdt=R.context.createGain(),this.ƀdt.connect(it.ƀfw.ƀkk),this.ƀfg=this.ƀdt,e?.volume!==void 0&&(this.volume=e.volume),this.ƀiw(e?.time??0);}destroy(){this.destroyed||(super.destroy(),this.ƀla(),this.ƀdt?.disconnect());}ƀlw(){this.ƀfg.disconnect(),this.ƀfg.connect(it.ƀfw.ƀhh);}ƀiw(t){this.ƀla();let e=this.ƀkl.loop;if(this.ƀku=helpersLib.NumberHelper.clamp(t,0,e?e.to:this.ƀkl.duration),e){let i=e.from,s=e.to;this.ƀix({soundID:this.ƀkl.id,start:this.ƀku,end:this.ƀku<i?i:s,loop:false,onComplete:h(()=>{this.ƀko.disconnect(),this.ƀix({soundID:this.ƀkl.id,start:i,end:s,loop:true});},"onComplete")});}else this.ƀix({soundID:this.ƀkl.id,start:this.ƀku,end:void 0,loop:false,onComplete:h(()=>this.destroy(),"onComplete")});}ƀla(){this.ƀko&&(this.ƀko.onended=null,this.ƀko.stop(),this.ƀko.disconnect());}ƀix(t){this.ƀko=R.createSource(t.soundID),this.ƀko.connect(this.ƀdt),t.onComplete&&(this.ƀko.onended=t.onComplete),t.loop?(this.ƀko.loop=true,this.ƀko.loopStart=t.start,this.ƀko.loopEnd=t.end??this.ƀko.buffer.duration,this.ƀko.start(0,t.start)):this.ƀko.start(0,t.start,t.end?t.end-t.start:void 0);}};var zs=800,_e=-128,wt=class n extends ce{static{h(this,"AdvancedSound");}static createByName(t,e){let i=x.setupOptions.soundDefinitions[t];if(!i)throw new Error(`AdvancedSound: Could not find sound definition with name ${t}.`);return new n(i,e)}constructor(t,e){super(t,e),this.ƀlm=new actionsLib.Variable(0),this.time=this.ƀlm.notifier,this.ƀkw=R.context.currentTime-this.ƀku,this.ƀlm.value=this.ƀku,g.beforeSceneUpdateAction.subscribe(()=>{this.ƀlm.value=R.context.currentTime-this.ƀkw;}).attach(this),this.ƀfg.disconnect(),this.ƀkc(e?.fade?helpersLib.NumberHelper.clamp(e.fade,0,1):0),this.ƀkd(e?.muffle?helpersLib.NumberHelper.clamp(e.muffle,0,1):0),this.ƀfg.connect(it.ƀfw.ƀkk);}ƀkc(t=0){this.ƀdm=R.context.createGain(),this.ƀdm.gain.value=1-t,this.ƀdl=new O(this.ƀdm.gain,"value",{duration:500,animation:b.lineer,reAnimateHandling:exports.ReAnimateHandlingType.CompletePrevious,completionHandling:exports.AnimationsCompletionHandlingType.StayInCurrentState}),this.ƀfg.connect(this.ƀdm),this.ƀfg=this.ƀdm;}ƀkd(t=0){this.ƀhf=R.context.createBiquadFilter(),this.ƀhf.type="highshelf",this.ƀhf.frequency.value=zs,this.ƀhf.gain.value=t*_e,this.ƀhg=new O(this.ƀhf.gain,"value",{duration:500,animation:b.lineer,reAnimateHandling:exports.ReAnimateHandlingType.CompletePrevious,completionHandling:exports.AnimationsCompletionHandlingType.StayInCurrentState}),this.ƀfg.connect(this.ƀhf),this.ƀfg=this.ƀhf;}close(){return this.ƀbd?this.onDestroy():(this.ƀbd=true,this.fade(1,rt).notIdle().chain(this).tap(()=>this.destroy()).chainToRoot())}notifyOnTime(t){return this.time.value>t?actionsLib.SingleEvent.createDestroyed():actionsLib.SingleEvent.create(e=>{let i=this.time.filter(s=>s>=t).tap(()=>e()).attach(this);return ()=>i.destroy()})}setFade(t){t=helpersLib.NumberHelper.clamp(t,0,1),this.ƀdl.set({value:1-t});}fade(t,e=500){t=helpersLib.NumberHelper.clamp(t,0,1);let i=t>1-this.ƀdm.gain.value;return e===0?(this.ƀdl.set({value:1-t}),actionsLib.SingleEvent.instant()):this.ƀdl.animate({value:1-t},{duration:e,animation:i?b.easeOut:b.easeIn}).chain(this)}setMuffle(t){t=helpersLib.NumberHelper.clamp(t,0,1),this.ƀhg.set({value:t*_e});}muffle(t,e=500){return t=helpersLib.NumberHelper.clamp(t,0,1),e===0?(this.ƀhg.set({value:t*_e}),actionsLib.SingleEvent.instant()):this.ƀhg.animate({value:t*_e},{duration:e}).chain(this)}destroy(){this.destroyed||(this.ƀdm.disconnect(),this.ƀhf.disconnect()),super.destroy();}};var pe=class n extends actionsLib.IDAttachable{static{h(this,"Music");}static createByName(t,e){let i=x.setupOptions.soundDefinitions[t];if(!i)throw new Error(`AdvancedSound: Could not find sound definition with name ${t}.`);return new n(i,e)}get time(){switch(this.ƀkn.value.type){case "paused":return this.ƀkn.value.value.time;case "playing":return this.ƀkn.value.value.time.value;default:{this.ƀkn.value;throw new Error}}}get volume(){return this.ƀkn.value.value.volume}set volume(t){this.setVolume(t);}setVolume(t){return this.ƀkn.value.value.volume=t,this}constructor(t,e){super(),this.ƀhx={stopPlayingOnPause:true,...e},this.ƀkm=t.id;let i;if(this.ƀhx.stopPlayingOnPause&&x.pause.value)i={type:"paused",value:{time:0,volume:1}};else {let s=new wt(t,this.ƀhx).attach(this);s.ƀlw(),i={type:"playing",value:s};}this.ƀkn=new actionsLib.Variable(i),this.ƀhx.stopPlayingOnPause&&(this.ƀic=x.pause.subscribe(s=>this.ƀfb(s)).attach(this));}notifyOnTime(t){return actionsLib.SingleEvent.create(e=>{let i=this.ƀkn.asyncDropOngoing((s,r)=>{switch(s.type){case "paused":r.drop();break;case "playing":return s.value.notifyOnTime(t);default:{throw new Error}}}).toSingleEvent().tap(()=>e()).attach(this);return ()=>i.destroy()})}close(){return this.ƀbd?this.onDestroy():(this.ƀbd=true,this.ƀic?.destroy(),actionsLib.SingleEvent.instant().async(()=>actionsLib.ActionLib.all([this.ƀkn.value.type==="playing"?this.ƀkn.value.value.close():actionsLib.SingleEvent.instant(),this.ƀdn?.onDestroy()??actionsLib.SingleEvent.instant()]),"tap").chain(this).tap(()=>this.destroy()).chainToRoot())}ƀfb(t){if(t){if(this.ƀkn.value.type==="playing"){let e=this.ƀkn.value.value;this.ƀkn.value={type:"paused",value:{time:e.time.value,volume:e.volume}},this.ƀdn=e,actionsLib.ActionLib.all([e.fade(1,rt),e.muffle(1,rt)]).tap(()=>{this.ƀdn=void 0,e.destroy();}).attach(this);}}else if(this.ƀkn.value.type==="paused"){let{volume:e,time:i}=this.ƀkn.value.value,s=wt.createByName(this.ƀkm,{volume:e,time:i,fade:1,muffle:1}).attach(this);s.ƀlw(),actionsLib.ActionLib.all([s.fade(0,rt),s.muffle(0,rt)]).attach(this),this.ƀkn.value={type:"playing",value:s};}}};var di=class extends actionsLib.IDAttachable{static{h(this,"MusicPlayer");}get time(){return this.ƀiy?this.ƀiy.time:0}get volume(){return this.ƀmf}set volume(t){this.setVolume(t);}setVolume(t){return this.ƀmf=t,this.ƀiy&&(this.ƀiy.volume=t),this.ƀib&&(this.ƀib.volume=t),this}constructor(t){super(),this.ƀmf=1,this.ƀhx={stopPlayingOnPause:true,playWhenPaused:void 0,volume:1,...t},this.ƀmf=this.ƀhx.volume,this.ƀhx.playWhenPaused&&this.ƀkf(this.ƀhx.playWhenPaused);}play(t){if(this.ƀbd)throw new Error("Play is called while music player is destroyed.");return this.ƀcq=t,actionsLib.SingleEvent.instant().async(()=>{let e=this.ƀiy;if(e)return this.ƀiy=void 0,e.close()}).map(()=>{if(this.ƀcq===t)return this.ƀiy=pe.createByName(t,{stopPlayingOnPause:this.ƀhx.stopPlayingOnPause,volume:this.ƀmf}).attach(this),this.ƀiy}).chain(this)}stop(){return actionsLib.SingleEvent.instant().async(()=>{let t=this.ƀiy;if(t)return t.close().tap(()=>{t===this.ƀiy&&(this.ƀiy=void 0);})}).chain(this)}close(){return this.ƀbd?this.onDestroy():(this.ƀbd=true,this.ƀic?.destroy(),actionsLib.SingleEvent.instant().async(()=>actionsLib.ActionLib.all([this.ƀiy?.close()??actionsLib.SingleEvent.instant(),this.ƀib?.close()??actionsLib.SingleEvent.instant()]),"tap").chain(this).tap(()=>this.destroy()).chainToRoot())}ƀkf(t){this.ƀic=x.pause.toSequence().asyncDropOngoing(e=>e&&g.wait(rt).map(()=>e)).tap(e=>{if(e)this.ƀib=wt.createByName(t,{fade:1,volume:this.ƀmf}).attach(this),this.ƀib.ƀlw(),this.ƀib.fade(0);else if(this.ƀib){let i=this.ƀib;this.ƀib.fade(1).tap(()=>i.destroy()).attach(this),this.ƀib=void 0;}}).attach(this);}};var mi=class extends d{static{h(this,"Placeholder");}constructor(t){super(),this.ƀit=new W__namespace.Graphics,this.ƀit.rect(0,0,t.x,t.y).fill({color:0,alpha:1e-9}),this.ƀiq.addChild(this.ƀit);}destroy(){this.destroyed||(super.destroy(),this.ƀit.destroy());}};var zt=class{static{h(this,"TextStyleConverter");}static getPixiTextStyle(t){let e={color:helpersLib.ColorHelper.white,align:"center",fontFamily:"Arial",fontStyle:"normal",fontSize:18,lineHeight:void 0,wordWrapWidth:void 0,lineThrough:false,...t},i=t?.dropShadow===true?{}:t?.dropShadow,s={};if(i){let r={blur:4,angle:helpersLib.Radian.get60,distance:10,color:helpersLib.ColorHelper.black,alpha:.5,...i};s={dropShadow:{blur:r.blur,angle:r.angle.value,distance:r.distance,color:helpersLib.ColorHelper.rgbToHex(r.color),alpha:r.alpha}};}return helpersLib.JsonHelper.removeUndefinedProperties({fontFamily:e.fontFamily,fill:helpersLib.ColorHelper.rgbToHex(e.color),align:e.align,fontSize:e.fontSize,fontStyle:e.fontStyle,lineHeight:e.lineHeight,wordWrapWidth:e.wordWrapWidth,wordWrap:e.wordWrapWidth!==void 0,lineThrough:e.lineThrough,...s})}};var Fe=class{static{h(this,"RichTextDataInConverter");}static process(t,e){let i=new Set(e.styles?Object.keys(e.styles):[]),s=scriptEngineLib.RichTextSeparator.process(t,i),r=this.ƀfs(s,e),o=this.ƀs(r);return this.ƀkp(o)}static ƀfs(t,e){let i=new Map,s=new Map,r=h((a,l)=>{if(s.has(l))return s.get(l);let c=zt.getPixiTextStyle(a);return s.set(l,c),c},"GetPixiStyle");return t.map(a=>{let{style:l,cacheKey:c}=this.ƀeb(a.tags,e,i),p=r(l,c),f=W__namespace.CanvasTextMetrics.measureText(" ",new W__namespace.TextStyle(p),void 0,false);return {text:a.text,cacheKey:c,style:l,pixiStyle:p,spaceWidth:f.width}})}static ƀeb(t,e,i){let s=t.join("+");if(i.has(s))return {style:i.get(s),cacheKey:s};let r=this.ƀbh(t,e);return i.set(s,r),{style:r,cacheKey:s}}static ƀbh(t,e){let i={...e.default};for(let l of t)e.styles&&e.styles[l]&&(i={...i,...e.styles[l]});let{wordWrapWidth:s,align:r,dropShadow:o,...a}=i;return a}static ƀs(t){let e=[],i=[];return t.forEach((s,r)=>{s.text.split(/\r?\n/).forEach((a,l)=>{l>0&&(e.push(i),i=[]),i.push({text:a,cacheKey:s.cacheKey,style:s.style,pixiStyle:s.pixiStyle,spaceWidth:s.spaceWidth});});}),e.push(i),e}static ƀkp(t){let e=[];return t.forEach(i=>{if(i.length===0)throw new Error("Internal Error: Line is unexpectedly empty");let s=i.flatMap(r=>this.ƀkq(r.text).map(a=>{let l=new W__namespace.TextStyle(r.pixiStyle),c=W__namespace.CanvasTextMetrics.measureText(a,l,void 0,false);return {text:a,whitespace:a.trim()==="",style:{cacheKey:r.cacheKey,style:r.style,pixiStyle:l,height:c.height,ascent:c.fontProperties.ascent,descent:c.fontProperties.descent,width:c.width,spaceWidth:r.spaceWidth}}}));e.push(s);}),e}static ƀkq(t){if(t==="")return [""];let e=[],i="",s=t[0]===" ";for(let r=0;r<t.length;r++){let o=t[r],a=o===" ";a===s?i+=o:(e.push(i),i=o,s=a);}return i&&e.push(i),e}};var Le=class{static{h(this,"RichTextTypewriter");}get lineIsEmpty(){return this.ƀco.length===0}get remainingWidth(){return this.ƀmi-this.ƀcr}constructor(t,e){this.ƀmi=t,this.ƀgj=[],this.ƀco=[],this.ƀcr=0,this.ƀgi=new helpersLib.Vector(0,0),this.ƀcp=0;let i={rectangleCutOption:void 0,horizontalAlignment:"left",verticalAlignment:"bottom",...e};if(this.ƀfk=i.horizontalAlignment,this.ƀlz=i.verticalAlignment,i.rectangleCutOption){if(i.rectangleCutOption.position.x<0||i.rectangleCutOption.position.x>=this.ƀmi||i.rectangleCutOption.position.y<0)throw new Error("Rectangle cut position is out of bounds");this.ƀcs={direction:i.rectangleCutOption.direction,rectangle:this.ƀbu(i.rectangleCutOption)};}}isSpaceAvailable(t){let e=Math.max(this.ƀcp,t.y),i=this.ƀek(this.ƀgi.y,this.ƀgi.y+e);return this.ƀcr+t.x<=i}insertWord(t){let e=Math.max(this.ƀcp,t.style.height);if(this.ƀco.length===0){let i=this.ƀel(this.ƀgi.y,this.ƀgi.y+e);this.ƀgi=new helpersLib.Vector(i,this.ƀgi.y),this.ƀcr=this.ƀgi.x;}this.ƀco.push({chunk:t,position:new helpersLib.Vector(this.ƀcr,this.ƀgi.y)}),this.ƀcp=e,this.ƀcr+=t.style.width;}newLine(){let t=this.ƀgi.y+this.ƀcp,e=this.ƀel(t,t);this.ƀdp(),this.ƀgi=new helpersLib.Vector(e,t),this.ƀcr=this.ƀgi.x,this.ƀcp=0;}print(){return this.ƀdp(),this.ƀgj}ƀdp(){this.ƀco.length>0&&(this.ƀgj.push(this.ƀg(this.ƀco)),this.ƀco=[]);}ƀg(t){return t=this.ƀmb(t),t=this.ƀfm(t),t}ƀfm(t){if(this.ƀfk==="left")return t;let e=this.ƀgi.y+this.ƀcp,i=this.ƀel(this.ƀgi.y,e),r=this.ƀek(this.ƀgi.y,e)-i,o=Math.min(r,t.reduce((l,c)=>l+c.chunk.style.width,0)),a;return this.ƀfk==="center"?a=(r-o)/2:a=r-o,t.map(l=>(l={chunk:l.chunk,position:new helpersLib.Vector(l.position.x+a,l.position.y)},l))}ƀmb(t){let e=Math.max(...t.map(s=>s.chunk.style.ascent)),i=Math.max(...t.map(s=>s.chunk.style.descent));return t.map(s=>{let r;switch(this.ƀlz){case "top":r=i-s.chunk.style.descent;break;case "center":r=(i-s.chunk.style.descent+e-s.chunk.style.ascent)*.5;break;case "bottom":r=e-s.chunk.style.ascent;break;default:{this.ƀlz;throw new Error}}return s={chunk:s.chunk,position:new helpersLib.Vector(s.position.x,s.position.y+r)},s})}ƀel(t,e){return this.ƀcs&&(this.ƀcs.direction==="topLeft"||this.ƀcs.direction==="bottomLeft")&&(this.ƀcs.rectangle.isPointInside(new helpersLib.Vector(0,t),{includeEdges:false})||this.ƀcs.rectangle.isPointInside(new helpersLib.Vector(0,e),{includeEdges:false}))?this.ƀcs.rectangle.bottomRight.x:0}ƀek(t,e){return this.ƀcs&&(this.ƀcs.direction==="topRight"||this.ƀcs.direction==="bottomRight")&&(this.ƀcs.rectangle.isPointInside(new helpersLib.Vector(this.ƀmi,t),{includeEdges:false})||this.ƀcs.rectangle.isPointInside(new helpersLib.Vector(this.ƀmi,e),{includeEdges:false}))?this.ƀcs.rectangle.topLeft.x:this.ƀmi}ƀbu(t){let e,i;switch(t.direction){case "topRight":e=new helpersLib.Vector(t.position.x,-1/0),i=new helpersLib.Vector(1/0,t.position.y);break;case "topLeft":e=new helpersLib.Vector(-1/0,-1/0),i=t.position;break;case "bottomRight":e=t.position,i=new helpersLib.Vector(1/0,1/0);break;case "bottomLeft":e=new helpersLib.Vector(-1/0,t.position.y),i=new helpersLib.Vector(t.position.x,1/0);break;default:{t.direction;throw new Error}}return new helpersLib.Rectangle(e,i)}};var He=class{static{h(this,"ConsistentSpaceTextWrapper");}static wrapText(t,e){return t.forEach(i=>{i.forEach((s,r)=>{if(e.isSpaceAvailable(new helpersLib.Vector(s.style.width,s.style.height)))if(s.whitespace&&r===i.length-2){let o=i[i.length-1];e.isSpaceAvailable(new helpersLib.Vector(o.style.width+s.style.width,o.style.height))?e.insertWord(s):this.ƀmj(s,e);}else e.insertWord(s);else e.lineIsEmpty?e.insertWord(s):s.whitespace?this.ƀmj(s,e):(e.newLine(),e.insertWord(s));}),e.newLine();}),e.print()}static ƀmj(t,e){let i=Math.max(0,Math.floor(e.remainingWidth/t.style.spaceWidth)),s=Math.max(0,Math.min(i,t.text.length-1));if(s>0){let o={text:" ".repeat(s),whitespace:true,style:{...t.style,width:s*t.style.spaceWidth}};e.insertWord(o);}e.newLine();let r=t.text.length-s-1;if(r>0){let o={text:" ".repeat(r),whitespace:true,style:{...t.style,width:r*t.style.spaceWidth}};e.insertWord(o);}}};var je=class{static{h(this,"RichTextDataOutConverter");}static process(t){return t=this.ƀgz(t),t=this.ƀlq(t),this.ƀaz(t)}static ƀgz(t){return t.map(e=>{let i=[],s,r=true;return e.forEach(o=>{if(!s||s.chunk.style.cacheKey!==o.chunk.style.cacheKey)s&&i.push(s),s=o,r=o.chunk.whitespace;else {let a=s.chunk.text+o.chunk.text;r=o.chunk.whitespace&&r,s={chunk:{text:a,whitespace:r,style:{...s.chunk.style,width:s.chunk.style.width+o.chunk.style.width}},position:s.position};}}),s&&i.push(s),i})}static ƀlq(t){return t.map(e=>{if(e.length===0)return [];let i=e.pop();if(!i.chunk.whitespace||i.chunk.text===""){let s=i.chunk.text.length,r=i.chunk.text.trimEnd();s!==r.length?e.push({chunk:{text:r,whitespace:false,style:{...i.chunk.style,width:i.chunk.style.width-(s-r.length)*i.chunk.style.spaceWidth}},position:i.position}):e.push(i);}return e})}static ƀaz(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 fe=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=Fe.process(t,e),s=helpersLib.JsonHelper.removeUndefinedProperties({rectangleCutOption:e.rectangleCut,verticalAlignment:e.verticalAlignment,horizontalAlignment:e.default.align}),r=new Le(e.default.wordWrapWidth??1/0,s),o=He.wrapText(i,r);return je.process(o)}};var so=1,cr=1/so,de=class extends d{static{h(this,"Text");}get ƀlj(){if(!this.ƀlk){let t=new W__namespace.TextStyle(this.ƀiv);this.ƀlk=W__namespace.CanvasTextMetrics.measureText(this.ƀli,t);}return this.ƀlk}get ascent(){return this.ƀlj.fontProperties.ascent}constructor(t,e){super(),this.ƀiv=zt.getPixiTextStyle(e),this.setText(t);}destroy(){this.destroyed||(super.destroy(),!this.ƀiu.destroyed&&this.ƀiu.destroy());}setAnchor(t){return this.anchor=t,this}get anchor(){return new helpersLib.Vector(this.ƀiu.anchor.x,this.ƀiu.anchor.y)}set anchor(t){this.ƀi=t,this.ƀiu.anchor.set(t.x,t.y),this.ƀjj();}setText(t){return this.ƀli!==t&&(this.ƀli=t,this.ƀjf()),this}setColor(t){let e=helpersLib.ColorHelper.rgbToHex(t);return this.ƀiv.fill!==e&&(this.ƀiv.fill=e,this.ƀjf()),this}ƀjf(){this.ƀiu?.destroy(),this.ƀlc?.destroy(),this.ƀlc=void 0,this.ƀlk=void 0;let t=new W__namespace.TextStyle(this.ƀiv);this.ƀiu=new W__namespace.Text({text:this.ƀli,style:t}),this.ƀi&&this.ƀiu.anchor.set(this.ƀi.x,this.ƀi.y),this.ƀjj(),this.ƀiu.scale.set(cr,cr),this.ƀiq.addChild(this.ƀiu),this.ƀiv.lineThrough&&(this.ƀlc=this.ƀe(this.ƀiu,this.ƀiv.fill),this.ƀiq.addChild(this.ƀlc));}ƀjj(){let t=W__namespace.CanvasTextMetrics.measureText(this.ƀli,new W__namespace.TextStyle({...this.ƀiv,dropShadow:false})),e=-this.ƀiu.anchor.x*t.width,i=-this.ƀiu.anchor.y*t.height;this.ƀiu.boundsArea=new W__namespace.Rectangle(e,i,t.width,t.height);}ƀe(t,e){let i=W__namespace.CanvasTextMetrics.measureText(t.text,t.style),s=Math.max(1,Math.round(i.lineHeight*.07)),r=s%2*.5,o=new W__namespace.Graphics,a=0;return i.lines.forEach((l,c)=>{let p=W__namespace.CanvasTextMetrics.measureText(l,t.style),f=Math.round(a+(p.fontProperties.ascent-p.fontProperties.descent)*.6+p.fontProperties.descent)+r,y=0;t.style.align==="center"?y=0+(t.width-p.width)*.5:t.style.align==="right"&&(y=0+t.width-p.width),y=Math.floor(y),o.moveTo(Math.floor(y),f),o.lineTo(Math.floor(y+p.width),f),a+=p.lineHeight;}),o.stroke({width:s,color:e}),o}};var yi=class extends d{static{h(this,"RichText");}constructor(t,e){super(),fe.process(t,e).forEach(s=>new de(s.text,s.style).setPosition(s.position).displayParent(this).attach(this));}};var gi=class extends d{static{h(this,"UpdatableContainer");}},wi=class extends d{static{h(this,"DisplayObjectArray");}constructor(t,e){super(),this.ƀca=t,this.ƀcx=new Map,this.ƀhx={trackBy:h((i,s)=>s,"trackBy"),positioning:{direction:"vertical",spacing:0},...e};}set(t){let e=new Set(this.ƀcx.keys()),i=0;t.forEach((s,r)=>{let o=this.ƀhx.trackBy(s,r),a;this.ƀcx.has(o)?(a=this.ƀcx.get(o),e.delete(o),a.update(s)):(a=this.ƀca(s).displayParent(this).attach(this),this.ƀcx.set(o,a)),this.ƀhx.positioning.direction==="horizontal"?(a.x=i,i+=a.size.x+this.ƀhx.positioning.spacing):(a.y=i,i+=a.size.y+this.ƀhx.positioning.spacing);}),e.forEach(s=>{this.ƀcx.get(s).destroy(),this.ƀcx.delete(s);});}};var me=class n extends d{static{h(this,"MenuUI");}static{this.ƀfy=actionsLib.Reducer.createExistenceChecker();}static{this.isAnyMenuTransitioning=this.ƀfy.notifier;}constructor(t,e){super(),this.ƀhp=new actionsLib.SingleAction,this.onCreate=this.ƀhp.notifier,this.ƀhr=new actionsLib.SingleAction,this.onOpen=this.ƀhr.notifier,this.ƀhm=new actionsLib.SingleAction,this.onClose=this.ƀhm.notifier,this.ƀbd=false;let i={closeOnBackgroundClick:true,appearAnimationDuration:150,backgroundDarkeningRatio:.3,...e};this.setAlpha(0),this.ƀp=new O(this,"alpha",{animation:b.easeInOutCubic,duration:i.appearAnimationDuration,reAnimateHandling:exports.ReAnimateHandlingType.CompletePrevious,completionHandling:exports.AnimationsCompletionHandlingType.StayInCurrentState});let s=A.createRectangle(new helpersLib.Vector(1,1),helpersLib.ColorHelper.black).toSprite({cache:true}).setAlpha(i.backgroundDarkeningRatio).setInteractive(true).displayParent(this).attach(this);this.ƀgx=et.createByName(t).setPosition(new helpersLib.Vector(0,0)).setInteractive(true).displayParent(this).attach(this),x.instance.screenSize.subscribe(o=>{s.aspectRatio=o.x/o.y,s.scale=Math.max(o.x,o.y),s.setPosition(helpersLib.Vector.zero,{holdFrom:helpersLib.Vector.half}),this.setPosition(o.multiplyNumber(.5));}).attach(this),this.ƀhp.resolve();let r=n.ƀfy.effect().attach(this);this.ƀp.animate({alpha:1}).chain(this).tap(()=>{this.ƀhr.resolve(),r.destroy(),i.closeOnBackgroundClick&&s.on(exports.ContainerEventType.Click).take(1).tap(()=>this.close()).attach(this);}).attachToRoot();}getBoundingMask(){return this.ƀgx.getBoundingMask()}close(){if(!this.ƀbd){this.ƀbd=true;let t=n.ƀfy.effect().attach(this);this.ƀp.animate({alpha:0}).chain(this).map(()=>{this.ƀhm.resolve(),t.destroy(),this.destroy();}).chainToRoot();}return this.onClose.toSingleEvent()}};var vi=class extends dt{static{h(this,"MenuEntity");}static subscribeIsOpen(){return actionsLib.ActionLib.merge(this.continuesSubscription().map(t=>t.type==="open"),actionsLib.SingleEvent.instant(this.getInstance()!==void 0))}constructor(t){super(),this.ƀhx=t,queueMicrotask(()=>{if(!this.ƀgy)throw new Error("MenuEntity: MenuEntity has to have a MenuView.")});}ƀjh(t){this.ƀgy=t,this.ƀgy.onClose.subscribe(()=>this.destroy()).attach(this);}onCreate(){return this.ƀgy.onCreate.toSingleEvent()}onOpen(){return this.ƀgy.onOpen.toSingleEvent()}onClose(){return this.ƀgy.onClose.toSingleEvent()}close(){return this.ƀgy.close()}};var bi=class extends Z{static{h(this,"MenuView");}constructor(t,e,i){super();let s=helpersLib.JsonHelper.removeUndefinedProperties({appearAnimationDuration:i.appearAnimationDuration,backgroundDarkeningRatio:i.backgroundDarkeningRatio,closeOnBackgroundClick:t.ƀhx.closeOnBackgroundClick}),r=new me(e,s).displayParent(x.camera.layers.foregroundScreen).attach(this);t.ƀjh(r);let o=new actionsLib.SingleAction;r.onCreate.subscribe(()=>o.resolve(r)).attach(this),this.onCreate=o.notifier,this.onOpen=r.onOpen.notifier,this.onClose=r.onClose.notifier;}};var uo=.65,fo=.01,We=class{static{h(this,"SmoothScroller");}get scrollHeight(){return this.ƀjs}get contentSize(){return this.ƀbo.size.ceil()}constructor(t,e,i,s){this.ƀbo=t,this.ƀw=e,this.ƀhz=i,this.ƀkj=s,this.ƀfv=false,this.ƀjs=e-i*2,this.ƀbo.y=i,this.ƀld=i;}onWheel(t){this.setTarget(this.ƀld-t*uo);}scrollToTop(){this.setTarget(1/0);}scrollToBottom(){this.setTarget(-1/0);}setTarget(t){this.ƀld=helpersLib.NumberHelper.clamp(t,this.ƀw-this.ƀhz-this.contentSize.y,this.ƀhz);}jumpToTarget(){this.ƀbo.y=this.ƀld;}update(t){let e=this.contentSize;if(e.y<=this.ƀjs){switch(this.ƀkj){case "start":this.ƀld=this.ƀhz;break;case "center":this.ƀld=(this.ƀw-e.y)*.5;break;case "end":this.ƀld=this.ƀw-e.y-this.ƀhz;break;default:{this.ƀkj;throw new Error}}this.ƀfv||(this.ƀbo.y=this.ƀld);}this.ƀfv=true;let i=this.ƀld-this.ƀbo.y;this.ƀbo.y=this.ƀbo.y+i*fo*t;}};var yo=15,Pi=class extends d{static{h(this,"ScrollAreaUI");}get contentAreaSize(){return this.ƀbp}get contentSize(){return this.ƀjt.contentSize}constructor(t,e={}){super();let i={padding:yo,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 s=new d().displayParent(this).attach(this);new Ot(s,t,i.padding).attach(this);let r=new W__namespace.Graphics;r.rect(0,0,t.x,t.y).fill({color:0,alpha:1e-9}),s.ƀiq.addChild(r);let o=new d().displayParent(s).attach(this);this.ƀjt=new We(o,t.y,i.padding,i.smallContentAlign),this.ƀbp=new helpersLib.Vector(t.x,this.ƀjt.scrollHeight),r.eventMode="dynamic",r.addEventListener("wheel",a=>{this.ƀjt.onWheel(a.deltaY);}),o.setInteractive(true),o.ƀiq.addEventListener("wheel",a=>{this.ƀjt.onWheel(a.deltaY);}),g.afterSceneUpdateAction.subscribe(a=>this.ƀjt.update(a.delta)).attach(this),this.addChildTo=o;}scrollToTop(t){this.ƀjt.scrollToTop(),t?.instant&&this.ƀjt.jumpToTarget();}scrollToBottom(t){this.ƀjt.scrollToBottom(),t?.instant&&this.ƀjt.jumpToTarget();}};var Si=class extends d{static{h(this,"LayoutContainer");}constructor(t={}){super(new components.LayoutContainer),this.ƀiq.layout={isLeaf:false,...t};}setLayout(t){return this.ƀiq.layout=t,this}debug(){return this.ƀiq.layout={debug:true},this}debugBackground(){return this.ƀiq.layout={backgroundColor:"#3080FF"},this}};var wo=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},F=class extends dt{static{h(this,"CameraEntity");}constructor(){super(...arguments),this.position=new actionsLib.Variable(helpersLib.Vector.zero),this.offset=new actionsLib.Variable(helpersLib.Vector.zero),this.targetPosition=new actionsLib.Variable(void 0),this.focusingNewTargetInfo=new actionsLib.Variable(void 0);}};F=wo([It()],F);var xo=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},vo=1500,ke=class{static{h(this,"CameraService");}createCamera(){return new F().attachToRoot()}getCameraPosition(){let t=F.getInstanceOrFail();return helpersLib.Vector.fromTo(t.offset.value,t.position.value)}setPosition(t){let e=F.getInstanceOrFail();e.targetPosition.value=t;}setTransition(t){let e=F.getInstanceOrFail();e.focusingNewTargetInfo.value={time:x.time,duration:t?.duration??vo,position:e.position.value,roundPosition:t?.roundPosition??false,roundPositionThreshold:t?.roundPositionThreshold??0,focusingAnimation:t?.animation??exports.FocusingAnimation.Instant};}update(t,e){let i=F.getInstanceOrFail(),s=i.targetPosition.value;s&&(i.focusingNewTargetInfo.value?this.ƀgc(i,s,t):i.position.value=s);}ƀgc(t,e,i){let s=t.focusingNewTargetInfo.value;if(s.focusingAnimation===exports.FocusingAnimation.Instant)this.ƀbi(t,e);else {let r=(i-s.time)/s.duration;if(r>=1)this.ƀbi(t,e);else {let o;s.focusingAnimation===exports.FocusingAnimation.EaseInOut?o=U.easeInOut(r):s.focusingAnimation===exports.FocusingAnimation.EaseOut?o=U.easeOut(r):o=1;let a=s.position.lerp(e,o);s.roundPosition&&(Math.abs(a.x-s.position.x)>=s.roundPositionThreshold&&(a=new helpersLib.Vector(Math.round(a.x),a.y)),Math.abs(a.y-s.position.y)>=s.roundPositionThreshold&&(a=new helpersLib.Vector(a.x,Math.round(a.y)))),t.position.value=a;}}}ƀbi(t,e){t.position.value=e,t.focusingNewTargetInfo.value=void 0;}};ke=xo([u()],ke);var bo=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},Po=function(n,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,t)},Ei=class{static{h(this,"CameraController");}constructor(t){this.ƀav=t;}createCamera(){return this.ƀav.createCamera().id}update(t,e){this.ƀav.update(t,e);}setPosition(t){this.ƀav.setPosition(t);}setTransition(t){this.ƀav.setTransition(t);}getCameraPosition(){return this.ƀav.getCameraPosition()}};Ei=bo([lt(exports.CameraGateway),Po("design:paramtypes",[ke])],Ei);var ze=class{static{h(this,"PositionConversionHelper");}static includeScaleInScreenPosition(t,e,i){if(e!==1){let s=helpersLib.Vector.fromTo(i,t).multiplyNumber(1/e);return i.add(s)}else return t}};var To=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},Eo=function(n,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,t)},Gt=class extends Z{static{h(this,"CameraView");}constructor(t){super(),this.ƀdg=t,this.ƀks=(()=>{let e=new d().attach(this);return e.ƀiq=x.instance.ƀip.stage,e})(),this.ƀjn=new d().setAlpha(0).displayParent(this.ƀks).attach(this),this.ƀag=A.createRectangle(new helpersLib.Vector(1,1),helpersLib.ColorHelper.black).toSprite({cache:true}).setAlpha(0).displayParent(this.ƀks).attach(this),this.ƀad=new d().displayParent(this.ƀjn).attach(this),this.ƀau=new d().displayParent(this.ƀjn).attach(this),this.ƀds=new d().setSortableChildren(true).displayParent(this.ƀjn).attach(this),this.ƀat=new d().setSortableChildren(true).displayParent(this.ƀau).attach(this),this.ƀdr=new d().setSortableChildren(true).setRenderGroup().setZIndex(20).displayParent(this.ƀat).attach(this),this.ƀgp=new d().setSortableChildren(true).setRenderGroup().setZIndex(10).displayParent(this.ƀat).attach(this),this.ƀac=new d().setRenderGroup().setZIndex(0).displayParent(this.ƀat).attach(this),this.ƀh=new O(this.ƀjn,"alpha",{duration:500,animation:b.easeInOutCubic,reAnimateHandling:exports.ReAnimateHandlingType.CompletePrevious,completionHandling:exports.AnimationsCompletionHandlingType.StayInCurrentState}),this.ƀah=new O(this.ƀag,"alpha",{duration:500,animation:b.easeInOutCubic,reAnimateHandling:exports.ReAnimateHandlingType.CompletePrevious,completionHandling:exports.AnimationsCompletionHandlingType.StayInCurrentState}),x.instance.screenSize.subscribe(e=>{this.ƀag.aspectRatio=e.x/e.y,this.ƀag.scale=Math.max(e.x,e.y),this.ƀag.setPosition(helpersLib.Vector.zero,{holdFrom:helpersLib.Vector.zero});}).attach(this),this.ƀdg.position.subscribe(e=>{this.ƀat.position=this.ƀbv(e);}).attach(this),this.ƀdg.offset.subscribe(e=>{this.ƀau.position=e;}).attach(this),this.ƀah.set({alpha:0}),this.ƀh.set({alpha:0});}screenPositonToStagePosition(t){let e=ze.includeScaleInScreenPosition(t,this.ƀks.scale,x.instance.screenSizeCenter.value);return new helpersLib.Vector(e.x-this.ƀat.position.x-this.ƀau.position.x,e.y-this.ƀat.position.y-this.ƀau.position.y)}getLayers(){return {backgroundScreen:this.ƀad.id,background:this.ƀac.id,main:this.ƀgp.id,foreground:this.ƀdr.id,foregroundScreen:this.ƀds.id}}appear(t,e,i){switch(e){case "alpha":return this.ƀah.set({alpha:0}),this.ƀh.set({alpha:t?0:1}),actionsLib.SingleEvent.instant().async(()=>i>0&&g.wait(i),"tap").async(()=>this.ƀh.animate({alpha:t?1:0})).chain(this);case "pureBlack":return this.ƀh.set({alpha:1}),this.ƀah.set({alpha:t?1:0}),actionsLib.SingleEvent.instant().async(()=>i>0&&g.wait(i),"tap").async(()=>this.ƀah.animate({alpha:t?0:1})).chain(this);case "instant":return this.ƀh.set({alpha:t?1:0}),this.ƀah.set({alpha:t?0:1}),actionsLib.SingleEvent.instant();default:{throw new Error}}}ƀbv(t){return helpersLib.Vector.fromTo(t,x.instance.screenSizeCenter.value)}};Gt=To([oi({entity:F}),Eo("design:paramtypes",[F])],Gt);var Io=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},Ii=class{static{h(this,"CameraViewController");}getLayers(){let t=F.getInstanceOrFail().id;return Gt.getInstanceOrFail(t).getLayers()}appear(t,e,i){let s=F.getInstanceOrFail().id;return Gt.getInstanceOrFail(s).appear(t,e,i)}screenPositonToStagePosition(t){let e=F.getInstanceOrFail().id;return Gt.getInstanceOrFail(e).screenPositonToStagePosition(t)}};Ii=Io([lt(Bt)],Ii);var Co=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},Ao=function(n,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,t)};exports.KeyboardService=class Ci{static{h(this,"KeyboardService");}constructor(){this.ƀge=new actionsLib.Action,this.keyPressed=this.ƀge.notifier,this.ƀgf=new actionsLib.Action,this.keyReleased=this.ƀgf.notifier,this.ƀgl=new Set,this.ƀgk=new Set,window.addEventListener("keydown",t=>{this.ƀgl.add(t.code),this.ƀgk.add(t.code),!t.repeat&&this.ƀge.trigger({key:t.key,code:t.code});}),window.addEventListener("keyup",t=>{this.ƀgl.delete(t.code),this.ƀgf.trigger({key:t.key,code:t.code});}),window.addEventListener("blur",()=>{this.ƀgl.clear();}),g.afterSceneUpdateAction.subscribe(()=>this.ƀgk.clear()).attachToRoot();}isKeyDown(t,e){return (e?.onlyPressedThisFrame?this.ƀgk:this.ƀgl).has(t)}};exports.KeyboardService=Co([u(),Ao("design:paramtypes",[])],exports.KeyboardService);var Oo=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},Mo=function(n,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,t)};exports.MouseService=class we{static{h(this,"MouseService");}constructor(){this.ƀfu=new actionsLib.Variable(false),this.initialMouseMovementHappened=this.ƀfu.notifier,this.ƀkt=new actionsLib.Variable(helpersLib.Vector.zero,{notifyOnChange:true}),this.stagePosition=this.ƀkt.notifier,this.ƀjp=new actionsLib.Variable(helpersLib.Vector.zero,{notifyOnChange:true}),this.screenPosition=this.ƀjp.notifier,this.ƀgo=new actionsLib.Variable(false),this.mainButtonState=this.ƀgo.notifier,this.ƀju=new actionsLib.Variable(false),this.secondaryButtonState=this.ƀju.notifier,this.ƀkv(),window.addEventListener("pointerdown",t=>{t.button===0?this.ƀgo.value=true:t.button===2&&(this.ƀju.value=true);},{capture:true}),window.addEventListener("pointerup",t=>{t.button===0?this.ƀgo.value=false:t.button===2&&(this.ƀju.value=false);},{capture:true}),window.addEventListener("blur",()=>{this.ƀgo.value=false,this.ƀju.value=false;},{capture:true});}ƀkv(){let t=helpersLib.Vector.zero;window.addEventListener("pointermove",e=>{t=new helpersLib.Vector(e.clientX,e.clientY),this.ƀfu.value=true;},{capture:true}),g.beforeSceneUpdateAction.subscribe(()=>{this.ƀjp.value=this.ƀbc(t);}).attachToRoot(),g.afterSceneUpdateAction.subscribe(()=>{this.ƀkt.value=x.camera.screenPositonToStagePosition(this.ƀjp.value);}).attachToRoot();}ƀbc(t){let i=x.instance.renderer.canvas.getBoundingClientRect(),s=i.width,r=i.height;if(s<=0||r<=0)return helpersLib.Vector.zero;let o=x.instance.renderer.screen,a=(t.x-i.left)/s*o.width,l=(t.y-i.top)/r*o.height;return a=helpersLib.NumberHelper.clamp(a,0,o.width),l=helpersLib.NumberHelper.clamp(l,0,o.height),new helpersLib.Vector(a,l)}};exports.MouseService=Oo([u(),Mo("design:paramtypes",[])],exports.MouseService);var Do=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},Bo=function(n,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,t)};exports.MouseTargetFocusService=class Ai{static{h(this,"MouseTargetFocusService");}get focusedInLastFrame(){return this.ƀdq}get lastFocusedPosition(){return this.ƀgh}constructor(t){this.ƀhd=t,this.ƀht=new actionsLib.Action,this.onTargetFocus=this.ƀht.notifier,this.ƀlo=0,this.ƀlp=false,this.ƀdq=false,this.ƀgh=void 0,g.beforeSceneUpdateAction.subscribe(e=>this.ƀls(e.delta)).attachToRoot();}ƀls(t){if(this.ƀhe){let e=this.ƀeq(this.ƀhd.stagePosition.value,this.ƀhe);this.ƀie===void 0?this.ƀie=e:this.ƀay(e,t);}this.ƀhe=this.ƀhd.stagePosition.value;}ƀay(t,e){this.ƀie-t>10?(this.ƀlo=Math.max(250,this.ƀlo),this.ƀlp=true):this.ƀlo>1e3&&(this.ƀlp=true);let i=this.ƀlo>=300&&this.ƀlp;this.ƀgd(i,t,e);}ƀgd(t,e,i){(t||e>this.ƀie)&&(this.ƀie=e),t?(this.ƀlp=false,this.ƀlo=0,this.ƀdq=true,this.ƀgh=this.ƀhd.stagePosition.value,this.ƀht.trigger(this.ƀgh)):(this.ƀlo+=i,this.ƀdq=false);}ƀeq(t,e){let i=helpersLib.Vector.fromTo(t,e);return Math.abs(i.x)+Math.abs(i.y)}};exports.MouseTargetFocusService=Do([u(),Bo("design:paramtypes",[exports.MouseService])],exports.MouseTargetFocusService);var Oi=10.8,Mi=10.01;exports.PhysicsShapeType=void 0;(function(n){n[n.Point=1]="Point",n[n.Circle=2]="Circle",n[n.Polygon=3]="Polygon",n[n.Rectangle=4]="Rectangle";})(exports.PhysicsShapeType||(exports.PhysicsShapeType={}));var m=class n{static{h(this,"P2JSHelper");}static aabbToBoundingBox(t){return helpersLib.Rectangle.fromRect({topLeft:{x:t.lowerBound[0],y:t.lowerBound[1]},bottomRight:{x:t.upperBound[0],y:t.upperBound[1]}})}static arrayToVector(t){return new helpersLib.Vector(t[0],t[1])}static vectorToArray(t){return [t.x,t.y]}static arePhysicsGroupsCollidable(t,e,i,s){return (t&s)!==0&&(i&e)!==0}static canCollideWith(t,e){return t.shapes.some(i=>e.shapes.some(s=>n.arePhysicsGroupsCollidable(i.collisionGroup,i.collisionMask,s.collisionGroup,s.collisionMask)))}static cloneP2Body(t){let e=new X__default.default.Body({position:t.position,angle:t.angle,type:t.type});return e.shapes=t.shapes,e}};var xt="border";var Lo=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r};exports.PhysicsGateway=class xe extends ht(){static{h(this,"PhysicsGateway");}};exports.PhysicsGateway=Lo([u()],exports.PhysicsGateway);var Ho=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},vt=class extends ht(){static{h(this,"PhysicsInternalGateway");}};vt=Ho([u()],vt);var S=class n extends Q{static{h(this,"PhysicsEntity");}static{this.ƀhy=new Map;}static{this.ƀii=new Map;}static getFromP2BodyID(t){return n.ƀhy.get(t)}static getFromP2BodyIDOrFail(t){let e=n.ƀhy.get(t);if(!e)throw new Error(`PhysicsEntity with p2BodyID ${t} not found`);return e}static getPhysicsInstanceOrFail(t){let e=n.ƀii.get(t);if(!e)throw new Error(`PhysicsEntity with id ${t} not found`);return e}static getPhysicsEntities(){return Array.from(n.ƀii.values())}get area(){return this.ƀv}get mass(){return this.ƀgs}get collisions(){return this.ƀbe}constructor(t,e,i){super(),this.ƀhn=new actionsLib.Action,this.onCollision=this.ƀhn.notifier,this.type="dynamic",this.ƀv=0,this.ƀgs=0,this.ƀbe=[],this.physicsWorldID=t,this.ƀik=E.get(vt);let s=this.ƀik.getMaterial(this.physicsWorldID,e.shapeDefinition.materialName),r=this.ƀik.getMaterialDefinition(this.physicsWorldID,e.shapeDefinition.materialName);if(this.type=i,this.physicsBodyGroup=e.shapeDefinition.group,this.includeInPathfinding=e.includeOnPathfinding,this.ƀij=this.ƀik.getGroupConstant(this.physicsWorldID,this.physicsBodyGroup),this.ƀil=this.ƀik.getMaskConstant(this.physicsWorldID,this.physicsBodyGroup),this.p2Body=this.ƀik.createBody(this.physicsWorldID,e,s,r,this.type),this.ƀv=this.p2Body.getArea(),this.ƀgs=this.p2Body.mass,this.p2Body.position=m.vectorToArray(e.position),this.p2Body.angle=e.rotation.value,!this.ƀik.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!");n.ƀhy.set(this.p2Body.id,this),n.ƀii.set(this.id,this);}destroy(){this.destroyed||(super.destroy(),this.ƀik.removeBody(this.physicsWorldID,this.p2Body),n.ƀhy.delete(this.p2Body.id),n.ƀii.delete(this.id));}canCollideWith(t){return m.arePhysicsGroupsCollidable(this.ƀij,this.ƀil,t.ƀij,t.ƀil)}ƀjw(t){this.ƀbe=t,t.length>0&&this.ƀhn.trigger(t);}};var ve=class extends S{static{h(this,"ImmovablePhysicsEntity");}constructor(t,e){super(t,e,"static"),this.position=m.arrayToVector(this.p2Body.position),this.rotation=new helpersLib.Radian(this.p2Body.angle);}convertToDTO(){return {entityID:this.id,classID:this.classID,position:this.position,rotation:this.rotation,velocity:helpersLib.Vector.zero,rotationalSpeed:0}}};var Di=class extends Q{static{h(this,"MovableEntity");}constructor(){super(),this.position=new actionsLib.Variable(helpersLib.Vector.zero),this.rotation=new actionsLib.Variable(helpersLib.Radian.get0),this.velocity=new actionsLib.Variable(helpersLib.Vector.zero),this.rotationalSpeed=new actionsLib.Variable(0),g.beforeSceneUpdateAction.subscribe(({time:t,delta:e})=>{this.ƀkz(t,e);}).attach(this);}ƀkz(t,e){this.position.value=this.position.value.add(this.velocity.value.multiplyNumber(e)),this.rotation.value=new helpersLib.Radian(this.rotation.value.value+this.rotationalSpeed.value*e);}};var Bi=class extends S{static{h(this,"MovablePhysicsEntity");}constructor(t,e){super(t,e,"dynamic"),this.position=new actionsLib.Variable(helpersLib.Vector.zero),this.rotation=new actionsLib.Variable(helpersLib.Radian.get0),this.velocity=new actionsLib.Variable(helpersLib.Vector.zero),this.rotationalSpeed=new actionsLib.Variable(0),this.ƀfn=false,this.ƀfo=false,this.ƀfq=false,this.ƀfp=false,this.ƀif(),this.ƀgm(),E.get(vt).subscribeToPhysicsStep(t,({time:i,delta:s})=>this.ƀkz(i,s)).attach(this);}convertToDTO(){return {entityID:this.id,classID:this.classID,position:this.position.value,rotation:this.rotation.value,velocity:this.velocity.value,rotationalSpeed:this.rotationalSpeed.value}}ƀkz(t,e){this.ƀfn=true,this.ƀfo=true,this.ƀfq=true,this.ƀfp=true,this.ƀif();}ƀif(){this.position.value=m.arrayToVector(this.p2Body.position),this.rotation.value=new helpersLib.Radian(this.p2Body.angle),this.velocity.value=m.arrayToVector(this.p2Body.velocity),this.rotationalSpeed.value=this.p2Body.angularVelocity;}ƀgm(){this.position.subscribe(t=>{this.ƀfn?this.ƀfn=false:this.p2Body.position=[t.x,t.y];}).attach(this),this.rotation.subscribe(t=>{this.ƀfo?this.ƀfo=false:this.p2Body.angle=t.value;}).attach(this),this.velocity.subscribe(t=>{this.ƀfq?this.ƀfq=false:this.p2Body.velocity=[t.x,t.y];}).attach(this),this.rotationalSpeed.subscribe(t=>{this.ƀfp?this.ƀfp=false:this.p2Body.angularVelocity=t;}).attach(this);}};var $o=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},ko=function(n,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,t)},P=class extends Q{static{h(this,"PhysicsWorldEntity");}constructor(t,e,i,s,r,o,a){super(),this.materialDefinitions=new Map,this.physicsBodyGroupToP2Group=new Map,this.physicsBodyGroupToP2Mask=new Map,this.availabilityGridCache=new Map,this.vectorFieldCache=new Map,this.bodiesInContactWith=new Map,this.collisionReports=new Map,this.paused=new actionsLib.Variable(false),this.lastP2Time=new actionsLib.Variable(0),this.onPhysicsStep=new actionsLib.Action,this.mapSize=t,this.mapSizeCenter=this.mapSize.multiplyNumber(.5),this.modifyUpdateCycle=e,this.p2World=i,this.materials=s,this.materialDefinitions=r,this.physicsBodyGroupToP2Group=o,this.physicsBodyGroupToP2Mask=a;}};P=$o([It(),ko("design:paramtypes",[helpersLib.Vector,Boolean,X__default.default.World,Map,Map,Map,Map])],P);var Xo=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},st=class{static{h(this,"PhysicsBodyGroupService");}createBodyGroupsAndMasks(t,e){let i=new Map,s=new Map;return t.map((r,o)=>{if(o>31)return console.error("Cannot have more than 32 physics body groups"),{};i.set(r,1<<o),s.set(r,0);}),e.map(([r,o])=>{if(!i.has(r))throw new Error(`Physics body group "${r}" not found`);if(!i.has(o))throw new Error(`Physics body group "${o}" not found`);let a=s.get(r),l=s.get(o),c=i.get(r),p=i.get(o);s.set(r,a|p),s.set(o,l|c);}),{physicsBodyGroupToP2Group:i,physicsBodyGroupToP2Mask:s}}getGroupConstant(t,e){return P.getInstanceByIDOrFail(t).physicsBodyGroupToP2Group.get(e)}getMaskConstant(t,e){return P.getInstanceByIDOrFail(t).physicsBodyGroupToP2Mask.get(e)}canCollide(t,e,i){let s=t.physicsBodyGroupToP2Group.get(e),r=t.physicsBodyGroupToP2Mask.get(e),o=t.physicsBodyGroupToP2Group.get(i),a=t.physicsBodyGroupToP2Mask.get(i);return (r&o)!==0&&(a&s)!==0}};st=Xo([u()],st);var Ko=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},Zo=function(n,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,t)},Xe=class{static{h(this,"AvailabilityGridCacheService");}constructor(t){this.ƀih=t;}getCollidableGrids(t,e){let i=[];return t.availabilityGridCache.forEach((s,r)=>{s.forEach((o,a)=>{this.ƀih.canCollide(t,a,e)&&i.push({grid:o,cellSize:r});});}),i}get(t,e,i){return t.availabilityGridCache.get(e)?.get(i)}set(t,e,i,s){let r=t.availabilityGridCache.get(e);r||(r=new Map,t.availabilityGridCache.set(e,r)),r.set(i,s);}clear(t){t.availabilityGridCache.clear();}};Xe=Ko([u(),Zo("design:paramtypes",[st])],Xe);var Qo=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},qo=function(n,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,t)},bt=class{static{h(this,"AvailabilityGridService");}constructor(t,e){this.ƀih=t,this.ƀaa=e;}onBodyAdded(t,e,i){e.aabbNeedsUpdate=true,e.updateAABB();let s=m.aabbToBoundingBox(e.aabb);this.ƀaa.getCollidableGrids(t,i).forEach(r=>{let o=_.areaToGridArea(s,r.cellSize);r.grid.setArea(o,false);});}findClosestAvailableSpace(t,e,i,s=50){return e.aabbNeedsUpdate=true,e.updateAABB(),ne.findByConvertingGridSpace(this.getAvilabilityGrid(t,s,i),m.aabbToBoundingBox(e.aabb),s)}getAvilabilityGrid(t,e,i){let s=this.ƀaa.get(t,e,i);return s||(s=this.ƀcd(t,e,i),this.ƀaa.set(t,e,i,s)),s}ƀcd(t,e,i){let s=new helpersLib.Grid({size:new helpersLib.Vector(Math.floor(t.mapSize.x/e),Math.floor(t.mapSize.y/e)),defaultValue:true});return t.p2World.bodies.forEach(r=>{let o=S.getFromP2BodyIDOrFail(r.id);if(o.includeInPathfinding&&this.ƀih.canCollide(t,o.physicsBodyGroup,i)){let a=this.ƀeh(r,e);s.setArea(a,false);}}),s}ƀeh(t,e){let i=m.aabbToBoundingBox(t.aabb);return _.areaToGridArea(i,e)}};bt=Qo([u(),qo("design:paramtypes",[st,Xe])],bt);var rn=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},sn=function(n,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,t)},Kt=class{static{h(this,"PathFinderService");}constructor(t){this.ƀig=t;}findPathAStar(t,e,i,s,r){r||(r={}),r.neighborType===void 0&&(r.neighborType="orthogonal"),r.gridCellSize===void 0&&(r.gridCellSize=50);let o=P.getInstanceByIDOrFail(t),a,l;helpersLib.Comparator.isNumber(i)?(l=S.getPhysicsInstanceOrFail(i).p2Body,a=m.arrayToVector(l.position)):a=i;let c=_.positionToGridPosition(e,r.gridCellSize),p=_.positionToGridPosition(a,r.gridCellSize),f=this.ƀig.getAvilabilityGrid(o,r.gridCellSize,s);if(l){let v=m.aabbToBoundingBox(l.aabb),w=_.areaToGridArea(v,r.gridCellSize);f.setArea(w,true);}let y=ae.findPath(f,c,p,r.neighborType);return y.path=y.path.map(v=>_.gridPositionToPosition(v,r.gridCellSize)),y}findPathDirection(t,e,i,s,r=50){let o=P.getInstanceByIDOrFail(t),a;if(helpersLib.Comparator.isNumber(i)){let y=S.getPhysicsInstanceOrFail(i);a=m.aabbToBoundingBox(y.p2Body.aabb);}else a=new helpersLib.Rectangle(i,i);let l=_.areaToGridArea(a,r),c=JSON.stringify({targetGridArea:l,collidableWithGroup:s}),p=o.vectorFieldCache.get(c);if(!p){let y=this.ƀig.getAvilabilityGrid(o,r,s);p=new he(l,y),o.vectorFieldCache.set(c,p);}let f=_.positionToGridPosition(e,r);return p.getDirectionToTarget(f)}};Kt=rn([u(),sn("design:paramtypes",[bt])],Kt);var nn=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},an=function(n,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,t)},nt=class{static{h(this,"TestVisualsService");}constructor(t,e){this.ƀab=t,this.ƀia=e;}printPathfindingTestGrid(t,e,i,s,r,o){let a=P.getInstanceByIDOrFail(t);this.ƀab.getAvilabilityGrid(a,o,s).map((c,p)=>({position:_.gridPositionToPosition(p,o),availability:c})).forEach(c=>{if(c.position.isInsideRectangle(r)){let p=this.ƀia.findPathDirection(t,c.position,i,s),f;p===void 0?f=A.createRectangleBorders(new helpersLib.Vector(8,8),2,helpersLib.ColorHelper.red).toSprite().displayParent(e).setPosition(c.position,{round:false}).attach(a):f=A.createArrow(25,c.availability?helpersLib.ColorHelper.green:helpersLib.ColorHelper.red).toSprite().displayParent(e).setPosition(c.position,{round:false}).setRotation(p).attach(a),new O(f,"alpha",{duration:1e3,animation:b.easeIn}).animate({alpha:0}).tap(()=>f.destroy()).attach(f);}});}createExplosionDebugVisual(t,e,i,s,r,o=300){let a=new d().displayParent(e).setAlpha(.5).attach(t);A.createCircle(r,helpersLib.ColorHelper.blue).toSprite().displayParent(a).setPosition(s,{round:false}).setAlpha(.5).attach(t),i.forEach(c=>{let p=c.hits.length>0?helpersLib.ColorHelper.red:helpersLib.ColorHelper.white;A.createVector(s,c.line.to,p).toSprite().displayParent(a).attach(t);}),new O(a,"alpha",{duration:o,animation:b.easeIn}).animate({alpha:0}).tap(()=>a.destroy()).attach(a);}createElipticExplosionDebugVisual(t,e,i,s,r,o,a=300){let l=new d().displayParent(e).setAlpha(.5).attach(t);A.createElipse(o,helpersLib.ColorHelper.blue).toSprite().displayParent(l).setPosition(s,{round:false}).setRotation(r).setAlpha(.5).attach(t),i.forEach(p=>{let f=p.hits.length>0?helpersLib.ColorHelper.red:helpersLib.ColorHelper.white;A.createVector(p.line.from,p.line.to,f).toSprite().displayParent(l).attach(t);}),new O(l,"alpha",{duration:a,animation:b.easeIn}).animate({alpha:0}).tap(()=>l.destroy()).attach(l);}createPhysicsEntityShapeVisual(t,e,i){let s=i?.overridePosition??m.arrayToVector(t.position),r=i?.overrideRotation??new helpersLib.Radian(t.angle),o=i?.color??helpersLib.ColorHelper.blue,a=new d().displayParent(e).setPosition(s,{round:false}).setRotation(r).setAlpha(.5).attachToRoot();t.shapes.forEach(c=>{this.ƀcz(c,o).displayParent(a).attachToRoot();}),new O(a,"alpha",{duration:1e3,animation:b.easeIn}).animate({alpha:0}).tap(()=>a.destroy()).attach(a);}ƀcz(t,e){switch(t.type){case X__default.default.Shape.PARTICLE:throw new Error("Not implemented");case X__default.default.Shape.LINE:throw new Error("Not implemented");case X__default.default.Shape.PLANE:throw new Error("Not implemented");case X__default.default.Shape.CIRCLE:throw new Error("Not implemented");case X__default.default.Shape.CAPSULE:throw new Error("Not implemented");case X__default.default.Shape.BOX:throw new Error("Not implemented");case X__default.default.Shape.HEIGHTFIELD:throw new Error("Not implemented");case X__default.default.Shape.CONVEX:return this.ƀcy(t,e);default:{t.type;throw new Error}}}ƀcy(t,e){let i=[t.vertices.map(s=>({x:s[0],y:s[1]}))];return A.createPolygon(i,e).toSprite()}};nt=nn([u(),an("design:paramtypes",[bt,Kt])],nt);var cn=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},pn=function(n,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,t)},Ke=class{static{h(this,"HitTestService");}constructor(t){this.ƀlh=t;}hitTest(t,e){let i=t.world,s=S.getFromP2BodyIDOrFail(t.id),r=m.cloneP2Body(t);this.ƀt(r,e);let o=i.broadphase.aabbQuery(i,this.ƀdv(r)).map(l=>S.getFromP2BodyIDOrFail(l.id)).filter(l=>l.includeInPathfinding).filter(l=>s.canCollideWith(l)).map(l=>m.cloneP2Body(l.p2Body)),a=false;if(o.length!==0){let l=new X__default.default.World;l.addBody(r),o.forEach(c=>l.addBody(c)),l.step(1,1,1),a=l.narrowphase.contactEquations.some(c=>c.bodyA===r||c.bodyB===r),l.clear();}if(e?.testLayerID){let l=a?helpersLib.ColorHelper.red:helpersLib.ColorHelper.green;this.ƀlh.createPhysicsEntityShapeVisual(t,e.testLayerID,{overridePosition:e.overridePosition,overrideRotation:e.overrideRotation,color:l});}return a}ƀt(t,e){e?.overridePosition&&(t.position=m.vectorToArray(e.overridePosition)),e?.overrideRotation&&(t.angle=e.overrideRotation.value);}ƀdv(t){return t.aabbNeedsUpdate=true,t.updateAABB(),t.aabb}};Ke=cn([u(),pn("design:paramtypes",[nt])],Ke);var fn=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},Ze=class{static{h(this,"CollisionsService");}registerPhysicsWorld(t){t.p2World.on("beginContact",e=>{e.contactEquations.forEach(i=>{this.ƀjg(t,i);});});}step(t,e,i){S.getPhysicsEntities().forEach(s=>{s.ƀbe=[];}),t.p2World.narrowphase.contactEquations.forEach(s=>{this.ƀjg(t,s);}),t.bodiesInContactWith.forEach((s,r)=>{this.ƀfd(s.p2Body),s.entity.ƀjw(t.collisionReports.get(r)||[]);}),t.bodiesInContactWith.clear(),t.collisionReports.clear();}ƀfd(t){let e=m.arrayToVector(t.velocity);e.length>Oi&&(e=e.normalize(Oi),t.velocity=m.vectorToArray(e)),t.angularVelocity=Math.min(Math.max(t.angularVelocity,-Mi),Mi);}ƀjg(t,e){let i=S.getFromP2BodyID(e.bodyA.id),s=S.getFromP2BodyID(e.bodyB.id);if(i&&s){t.bodiesInContactWith.set(e.bodyA.id,{p2Body:e.bodyA,entity:i}),t.bodiesInContactWith.set(e.bodyB.id,{p2Body:e.bodyB,entity:s});let r=t.collisionReports.get(e.bodyA.id)||[],o=t.collisionReports.get(e.bodyB.id)||[],{collisionDetailsA:a,collisionDetailsB:l}=this.ƀea(i,s,e);r.push({self:a,target:l}),o.push({self:l,target:a}),t.collisionReports.set(e.bodyA.id,r),t.collisionReports.set(e.bodyB.id,o);}else console.warn("ContactEquationOrganiser: Entity not found for contact equation",e);}ƀea(t,e,i){let s=t.convertToDTO(),r=e.convertToDTO(),o=m.arrayToVector(i.contactPointA),a=m.arrayToVector(i.contactPointB),{normalA:l,normalB:c}=this.ƀeo(i);return {collisionDetailsA:this.ƀdz(s,i.bodyA.mass,o,l,t.area),collisionDetailsB:this.ƀdz(r,i.bodyB.mass,a,c,e.area)}}ƀdz(t,e,i,s,r){let o,a=i.add(t.position);return {body:t,getPositionReletiveToObject:h(()=>(o||(o=i.rotate(t.rotation.multiply(-1).vector)),o),"getPositionReletiveToObject"),getPositionOnWorld:h(()=>(a||(a=i.add(t.position)),a),"getPositionOnWorld"),position:i,mass:e,area:r,normal:s}}ƀeo(t){let e=m.arrayToVector(t.normalA),i=e.multiplyNumber(-1);return {normalA:e,normalB:i}}};Ze=fn([u()],Ze);var dn=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},mn=function(n,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,t)},Qe=class extends ve{static{h(this,"BorderEntity");}constructor(t,e){super(t,e);}};Qe=dn([It(),mn("design:paramtypes",[Number,Object])],Qe);var yn=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},Y=1e4,qe=class{static{h(this,"BorderService");}createBorders(t,e,i){this.ƀbx(t,new helpersLib.Vector(e.x/2,-Y/2),new helpersLib.Vector(e.x+Y*2,Y),i),this.ƀbx(t,new helpersLib.Vector(e.x/2,e.y+Y/2),new helpersLib.Vector(e.x+Y*2,Y),i),this.ƀbx(t,new helpersLib.Vector(-Y/2,e.y/2),new helpersLib.Vector(Y,e.y+Y*2),i),this.ƀbx(t,new helpersLib.Vector(e.x+Y/2,e.y/2),new helpersLib.Vector(Y,e.y+Y*2),i);}ƀbx(t,e,i,s){return new Qe(t,{shapeDefinition:{materialName:xt,group:s,shapeType:exports.PhysicsShapeType.Rectangle,shapeData:i},position:e,rotation:helpersLib.Radian.get0,addInEmptySpace:false,includeOnPathfinding:true}).attachByID(t)}};qe=yn([u()],qe);var wn=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},Pr=new X__default.default.Material,xn={id:xt,density:Number.MAX_SAFE_INTEGER,velocityDrag:1,rotationalDrag:1},Zt=class{static{h(this,"MaterialsService");}createMaterials(t,e,i,s){let r=new Map,o=new Map;if(i.forEach(a=>{r.set(a.id,new X__default.default.Material),o.set(a.id,a);}),r.has(xt))throw new Error(`Material with name ${xt} cannot be defined, pick another name for the material.`);return r.set(xt,Pr),o.set(xt,xn),this.ƀc(t,e,i,s,r),{materials:r,materialDefinitions:o}}getMaterial(t,e){let i=P.getInstanceByIDOrFail(t);return this.ƀen(e,i.materials)}getMaterialDefinition(t,e){let i=P.getInstanceByIDOrFail(t);return this.ƀem(e,i.materialDefinitions)}ƀen(t,e){let i=e.get(t);if(!i)throw new Error(`Could not find material with name ${t}.`);return i}ƀem(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,s,r){this.ƀee(i.map(o=>o.id),s).forEach(o=>{let a=this.ƀen(o.materialA,r),l=this.ƀen(o.materialB,r);t.addContactMaterial(new X__default.default.ContactMaterial(a,l,{friction:o.friction,restitution:o.bounciness,stiffness:o.stiffness,relaxation:o.relaxation}));}),this.ƀd(t,e,i,r);}ƀee(t,e){let i=new Map;e.forEach(r=>{let o=i.get(r.materialA);o||(o=new Map,i.set(r.materialA,o)),o.set(r.materialB,r);});let s=[];return t.forEach((r,o)=>{for(let a=o;a<t.length;a++){let l=t[a],c=i.get(r)?.get(l);c?s.push(c):s.push({materialA:r,materialB:l,friction:0,bounciness:0,relaxation:4,stiffness:1e6});}}),s}ƀd(t,e,i,s){i.forEach(r=>{let o=this.ƀen(r.id,s);t.addContactMaterial(new X__default.default.ContactMaterial(o,Pr,{friction:e.friction,restitution:e.bounciness,stiffness:e.stiffness,relaxation:e.relaxation}));});}};Zt=wn([u()],Zt);var vn=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},bn=function(n,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,t)},Qt=class{static{h(this,"PhysicsWorldService");}constructor(t,e,i,s,r){this.ƀgw=t,this.ƀal=e,this.ƀab=i,this.ƀbf=s,this.ƀih=r;}createPhysicsWorld(t){let e=new X__default.default.World({gravity:[0,0]}),{materials:i,materialDefinitions:s}=this.ƀgw.createMaterials(e,t.borderProperties,t.materialDefinitions,t.materialContactDefinitions),{physicsBodyGroupToP2Group:r,physicsBodyGroupToP2Mask:o}=this.ƀih.createBodyGroupsAndMasks(t.physicsBodyGroups,t.interactingBodyGroups),a=new P(t.mapSize,t.modifyUpdateCycle,e,i,s,r,o).attachByID(t.attachTo);return a.onDestroy().tap(()=>{e.clear(),t.modifyUpdateCycle&&g.cleanUpdateModifier();}).attachToRoot(),this.ƀal.createBorders(a.id,t.mapSize,t.borderProperties.borderBodyGroup),this.ƀbf.registerPhysicsWorld(a),t.modifyUpdateCycle?g.registerUpdateModifier((l,c)=>this.ƀkz(a,l,c)):g.beforeSceneUpdateAction.subscribe(({time:l,delta:c})=>{this.ƀkz(a,l,c);}).attach(a),a.id}addBody(t,e,i,s,r){let o=P.getInstanceByIDOrFail(t);if(i){let a=this.ƀab.findClosestAvailableSpace(o,e,s);return a?(e.position[0]+=a.x,e.position[1]+=a.y,o.p2World.addBody(e),r&&this.ƀab.onBodyAdded(o,e,s),true):false}else return o.p2World.addBody(e),r&&this.ƀab.onBodyAdded(o,e,s),true}removeBody(t,e){P.getInstanceByID(t)?.p2World.removeBody(e);}ƀkz(t,e,i){if(!t.paused.value){t.availabilityGridCache.clear(),t.vectorFieldCache.clear(),t.p2World.step(i,i,i),t.modifyUpdateCycle&&(i=t.p2World.time-t.lastP2Time.value);let s=e+i;this.ƀbf.step(t,s,i),t.onPhysicsStep.trigger({time:s,delta:i}),t.lastP2Time.value=t.p2World.time;}return i}setPaused(t,e){P.getInstanceByIDOrFail(e).paused.set(t);}};Qt=vn([u(),bn("design:paramtypes",[Zt,qe,bt,Ze,st])],Qt);var Sn=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},te=class{static{h(this,"RayCastingService");}castClosest(t,e,i){let s=new X__default.default.RaycastResult,r=new X__default.default.Ray({mode:X__default.default.Ray.CLOSEST,from:m.vectorToArray(e.from),to:m.vectorToArray(e.to),collisionGroup:t.physicsBodyGroupToP2Group.get(i),collisionMask:t.physicsBodyGroupToP2Mask.get(i)});if(t.p2World.raycast(s,r),s.hasHit())return this.ƀbs(s,e)}castAllFirstContacts(t,e,i){let s=new Map,r=new X__default.default.Ray({mode:X__default.default.Ray.ALL,from:m.vectorToArray(e.from),to:m.vectorToArray(e.to),collisionGroup:t.physicsBodyGroupToP2Group.get(i),collisionMask:t.physicsBodyGroupToP2Mask.get(i),callback:h(o=>{let a=s.get(o.body);!s.has(o.body)||o.fraction<a.fraction?s.set(o.body,this.ƀbs(o,e)):o.fraction===a.fraction&&a.isExternal()&&s.set(o.body,this.ƀbs(o,e));},"callback")});return t.p2World.raycast(new X__default.default.RaycastResult,r),Array.from(s.values())}ƀbs(t,e){let i=t.fraction,s=m.arrayToVector(t.normal),r,o,a;return {body:t.body,hitPosition:h(()=>(r===void 0&&(r=e.from.lerp(e.to,i)),r),"hitPosition"),hitDistance:h(()=>(o===void 0&&(o=e.length*i),o),"hitDistance"),isExternal:h(()=>(a===void 0&&(a=e.fromTo.dotProduct(s)<0),a),"isExternal"),normal:s,fraction:i,line:e}}};te=Sn([u()],te);var Tn=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},Tt=class{static{h(this,"ImpactService");}applyImpulse(t,e,i,s){let r=i.normalize(s),o=[e.x-t.position[0],e.y-t.position[1]];t.applyImpulse(m.vectorToArray(r),o);}};Tt=Tn([u()],Tt);var En=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},ee=class{static{h(this,"RayCastHitConverterService");}toExplosionHits(t,e=true){let i=new Map;return t.forEach(s=>{s.hits.forEach(r=>{let o=i.get(r.body);if(o){let a=r.fraction<o.closestRaycastHit.fraction?r:o.closestRaycastHit;o.rayCastHits.push(r),i.set(r.body,{hitCount:o.hitCount+1,closestRaycastHit:a,rayCastHits:o.rayCastHits,isExternal:e?o.isExternal:o.isExternal&&r.isExternal(),explosionCenter:r.line.from});}else {let a=r.isExternal();i.set(r.body,{hitCount:1,closestRaycastHit:r,rayCastHits:[r],isExternal:a,explosionCenter:r.line.from});}});}),[...i.values()].map(s=>this.ƀbt(s,t.length))}ƀbt(t,e){let i=t.hitCount/e,s=t.rayCastHits;if(t.isExternal)return {body:S.getFromP2BodyIDOrFail(t.closestRaycastHit.body.id).convertToDTO(),p2Body:t.closestRaycastHit.body,isExternal:true,normal:t.closestRaycastHit.normal,fraction:t.closestRaycastHit.fraction,ratioOfHits:i,raycastResults:s,getHitPosition:t.closestRaycastHit.hitPosition,getHitDistance:t.closestRaycastHit.hitDistance};{let r=m.arrayToVector(t.closestRaycastHit.body.position);return {body:S.getFromP2BodyIDOrFail(t.closestRaycastHit.body.id).convertToDTO(),p2Body:t.closestRaycastHit.body,isExternal:false,normal:helpersLib.Vector.fromTo(r,t.explosionCenter).normalize(),fraction:0,ratioOfHits:i,raycastResults:s,getHitPosition:h(()=>t.explosionCenter,"getHitPosition"),getHitDistance:h(()=>0,"getHitDistance")}}}};ee=En([u()],ee);var In=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},Cn=function(n,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,t)},Mn=15,ei=class{static{h(this,"ElipticExplosionService");}constructor(t,e,i,s){this.ƀjc=t,this.ƀlh=e,this.ƀjb=i,this.ƀfr=s;}createElipticExplosion(t,e,i,s,r,o,a){let l=P.getInstanceByIDOrFail(t),c=this.ƀci(e,i,s,r,a?.hitOnlyClosest===true,l),p=this.ƀjb.toExplosionHits(c,false);return this.ƀr(p,o),a?.testLayerID&&this.ƀlh.createElipticExplosionDebugVisual(l,a.testLayerID,c,e,i,s,a.debugRayDuration),p.map(f=>{let{p2Body:y,...v}=f;return v})}ƀci(t,e,i,s,r,o){let a=[],l=e.vector,c=e.add(helpersLib.Radian.get90).vector,p=c.normalize(i.x);a.push(new helpersLib.Line(t,t.add(p))),a.push(new helpersLib.Line(t,t.add(p.multiplyNumber(-1))));let f=l.normalize(i.y);a.push(new helpersLib.Line(t,t.add(f))),a.push(new helpersLib.Line(t,t.add(f.multiplyNumber(-1))));let y=Math.round(i.y/Mn),v=i.y/(y*2+1)*2,w=l.normalize(v),M=i.x,L=Math.pow(i.y,2);return helpersLib.ArrayHelper.createIntegerArray(y).forEach(I=>{let K=v*(I+1),_t=w.multiplyNumber(I+1),$=c.normalize(this.ƀev(M,L,K)),H=t.add(_t);a.push(new helpersLib.Line(H,H.add($))),a.push(new helpersLib.Line(H,H.add($.multiplyNumber(-1))));let j=t.add(_t.multiplyNumber(-1));a.push(new helpersLib.Line(j,j.add($))),a.push(new helpersLib.Line(j,j.add($.multiplyNumber(-1))));}),a.map(I=>{if(r){let K=this.ƀjc.castClosest(o,I,s);return {line:I,hits:K?[K]:[]}}else {let K=this.ƀjc.castAllFirstContacts(o,I,s);return {line:I,hits:K}}})}ƀev(t,e,i){return Math.sqrt(1-Math.pow(i,2)/e)*t}ƀr(t,e){t.forEach(i=>{i.raycastResults.forEach(s=>{let r,o;s.isExternal()?(r=s.line.fromTo,o=e*2):(r=s.line.fromTo.multiplyNumber(-1),o=e*(1-s.fraction)*8),this.ƀfr.applyImpulse(s.body,s.hitPosition(),r,o);});});}};ei=In([u(),Cn("design:paramtypes",[te,nt,ee,Tt])],ei);var Dn=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},Bn=function(n,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,t)},ii=class{static{h(this,"ExplosionService");}constructor(t,e,i,s){this.ƀjc=t,this.ƀlh=e,this.ƀjb=i,this.ƀfr=s;}createExplosion(t,e,i,s,r,o){let a=P.getInstanceByIDOrFail(t),l=this.ƀet(i),c=this.ƀci(e,i,s,l,o?.hitOnlyClosest===true,a),p=this.ƀjb.toExplosionHits(c);return this.ƀr(e,i,r,l,p),o?.testLayerID&&this.ƀlh.createExplosionDebugVisual(a,o.testLayerID,c,e,i,o.debugRayDuration),p}ƀci(t,e,i,s,r,o){let a=new helpersLib.Radian(helpersLib.PI_360/s),l=new helpersLib.Vector(0,-e),c=a.vector;return helpersLib.ArrayHelper.createEmptyArray(s).map(()=>{let p=t.add(l);return l=l.rotate(c),new helpersLib.Line(t,p)}).map(p=>{if(r){let f=this.ƀjc.castClosest(o,p,i);return {line:p,hits:f?[f]:[]}}else {let f=this.ƀjc.castAllFirstContacts(o,p,i);return {line:p,hits:f}}})}ƀr(t,e,i,s,r){r.forEach(o=>{if(o.isExternal)o.raycastResults.forEach(a=>{let l=i*(1-a.fraction);this.ƀfr.applyImpulse(a.body,a.hitPosition(),a.line.fromTo,l);});else {let a=helpersLib.Vector.fromTo(t,m.arrayToVector(o.p2Body.position)),l=a.length/e,c=i*s*l/2;this.ƀfr.applyImpulse(o.p2Body,o.getHitPosition(),a,c);}});}ƀet(t){return t>100?Math.floor(t*.3):Math.floor(t*.26+4)}};ii=Dn([u(),Bn("design:paramtypes",[te,nt,ee,Tt])],ii);var Fn=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},ie=class{static{h(this,"PhysicsQueryService");}getMapSize(t){let e=P.getInstanceByIDOrFail(t);return {dimentions:e.mapSize,center:e.mapSizeCenter}}subscribeToPhysicsStep(t,e){return P.getInstanceByIDOrFail(t).onPhysicsStep.subscribe(e)}};ie=Fn([u()],ie);var Ln=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},Hn=function(n,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,t)},Gi=class{static{h(this,"PhysicsController");}constructor(t,e,i,s,r,o,a,l){this.ƀio=t,this.ƀia=e,this.ƀlh=i,this.ƀdk=s,this.ƀdd=r,this.ƀfj=o,this.ƀin=a,this.ƀfr=l;}createPhysicsWorld(t){return this.ƀio.createPhysicsWorld(t)}getMapSize(t){return this.ƀin.getMapSize(t)}setPaused(t,e){this.ƀio.setPaused(t,e);}hitTest(t,e){let i=S.getPhysicsInstanceOrFail(t);return this.ƀfj.hitTest(i.p2Body,e)}findPath(t,e,i,s,r){return this.ƀia.findPathAStar(t,e,i,s,{neighborType:r})}findPathDirection(t,e,i,s){return this.ƀia.findPathDirection(t,e,i,s)}applyImpulse(t,e,i,s){let r=S.getPhysicsInstanceOrFail(t);this.ƀfr.applyImpulse(r.p2Body,e,i,s);}createExplosion(t,e,i,s,r,o){return this.ƀdk.createExplosion(t,e,i,s,r,o)}createElipticExplosion(t,e,i,s,r,o,a){return this.ƀdd.createElipticExplosion(t,e,i,s,r,o,a)}printPathfindingTestGrid(t,e,i,s,r,o=50){this.ƀlh.printPathfindingTestGrid(t,e,i,s,r,o);}};Gi=Ln([lt(exports.PhysicsGateway),Hn("design:paramtypes",[Qt,Kt,nt,ii,ei,Ke,ie,Tt])],Gi);var jn=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},ri=class{static{h(this,"ShapeCreationService");}createBody(t,e,i,s,r){let o=P.getInstanceByIDOrFail(t);if(!o.physicsBodyGroupToP2Group.has(e.shapeDefinition.group))throw new Error(`Physics body group "${e.shapeDefinition.group}" not found`);switch(e.shapeDefinition.shapeType){case exports.PhysicsShapeType.Point:return this.ƀbz(o,void 0,i,s,e.shapeDefinition.group,r);case exports.PhysicsShapeType.Circle:return this.ƀbz(o,e.shapeDefinition.shapeData,i,s,e.shapeDefinition.group,r);case exports.PhysicsShapeType.Polygon:return this.ƀch(o,e.shapeDefinition.shapeData,i,s,e.shapeDefinition.group,r);case exports.PhysicsShapeType.Rectangle:return this.ƀcj(o,e.shapeDefinition.shapeData,i,s,e.shapeDefinition.group,r);default:{e.shapeDefinition.shapeType;throw new Error}}}ƀbz(t,e,i,s,r,o){let a=new X__default.default.Circle({collisionGroup:t.physicsBodyGroupToP2Group.get(r),collisionMask:t.physicsBodyGroupToP2Mask.get(r),radius:e});a.material=i;let l=new X__default.default.Body({type:o==="dynamic"?X__default.default.Body.DYNAMIC:X__default.default.Body.STATIC,mass:s.density,damping:s.velocityDrag,angularDamping:s.rotationalDrag});return l.addShape(a),l}ƀch(t,e,i,s,r,o){let a=t.physicsBodyGroupToP2Group.get(r),l=t.physicsBodyGroupToP2Mask.get(r),c=e.map(y=>new X__default.default.Convex({vertices:y.map(v=>[v.x,v.y]),collisionGroup:a,collisionMask:l})).map(y=>(y.material=i,y)),p=c.reduce((y,v)=>y+v.area,0),f=new X__default.default.Body({type:o==="dynamic"?X__default.default.Body.DYNAMIC:X__default.default.Body.STATIC,mass:p,damping:s.velocityDrag,angularDamping:s.rotationalDrag});return c.forEach(y=>f.addShape(y)),f.setDensity(s.density),f}ƀcj(t,e,i,s,r,o){let a=new X__default.default.Box({width:e.x,height:e.y,collisionGroup:t.physicsBodyGroupToP2Group.get(r),collisionMask:t.physicsBodyGroupToP2Mask.get(r)});a.material=i;let l=e.x*e.y,c=new X__default.default.Body({type:o==="dynamic"?X__default.default.Body.DYNAMIC:X__default.default.Body.STATIC,mass:l,damping:s.velocityDrag,angularDamping:s.rotationalDrag});return c.addShape(a),c.setDensity(s.density),c}};ri=jn([u()],ri);var Un=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},Wn=function(n,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,t)},_i=class{static{h(this,"PhysicsInternalController");}constructor(t,e,i,s,r){this.ƀio=t,this.ƀim=e,this.ƀkg=i,this.ƀin=s,this.ƀih=r;}createBody(t,e,i,s,r){return this.ƀkg.createBody(t,e,i,s,r)}getMaterial(t,e){return this.ƀim.getMaterial(t,e)}getMaterialDefinition(t,e){return this.ƀim.getMaterialDefinition(t,e)}getGroupConstant(t,e){return this.ƀih.getGroupConstant(t,e)}getMaskConstant(t,e){return this.ƀih.getMaskConstant(t,e)}addBody(t,e,i,s,r){return this.ƀio.addBody(t,e,i,s,r)}removeBody(t,e){this.ƀio.removeBody(t,e);}subscribeToPhysicsStep(t,e){return this.ƀin.subscribeToPhysicsStep(t,e)}};_i=Un([lt(vt),Wn("design:paramtypes",[Qt,Zt,ri,ie,st])],_i);exports.AdvancedSound=wt;exports.AnimationFlicker=Fi;exports.AnimationInterpolationFunctions=U;exports.Animations=b;exports.Animator=O;exports.BORDER_MATERIAL_NAME=xt;exports.BardLegendsTestingHelper=T;exports.Camera=le;exports.ClosestAvailableSpaceHelper=ne;exports.Container=d;exports.ControllerDecorator=lt;exports.DEFAULT_SHADER_RESOLUTION=k;exports.DeltaTime=pi;exports.DisplayObjectArray=wi;exports.Entity=Q;exports.EntityDecorator=It;exports.FadeInContent=Ji;exports.Game=x;exports.Gateway=ht;exports.Graphics=A;exports.ImmovablePhysicsEntity=ve;exports.LayoutContainer=Si;exports.MenuEntity=vi;exports.MenuUI=me;exports.MenuView=bi;exports.MovableEntity=Di;exports.MovablePhysicsEntity=Bi;exports.Music=pe;exports.MusicPlayer=di;exports.PathFinder=ae;exports.PhysicsEntity=S;exports.Placeholder=mi;exports.ROTATIONAL_SPEED_LIMIT=Mi;exports.RichText=yi;exports.SOUND_TRANSITION_DURATION=rt;exports.SPEED_LIMIT=Oi;exports.Scene=Vt;exports.SceneDecorator=Vr;exports.ScrollAreaUI=Pi;exports.ScrollMaskUI=Ot;exports.Service=E;exports.ServiceDecorator=u;exports.SingletonEntity=dt;exports.SlideInContent=qi;exports.SlideInContentByIndex=ci;exports.SlideStateAnimation=De;exports.Sound=ce;exports.Sprite=et;exports.StateAnimation=jt;exports.Text=de;exports.ThroughEmptyStateAnimation=Re;exports.UpdatableContainer=gi;exports.UpdateCycle=g;exports.VectorFieldPathFinder=he;exports.VectorSet=oe;exports.View=Z;exports.ViewDecorator=oi;
|
|
45
|
+
}`,e}constructor(t,e){if(super({glProgram:W__namespace.GlProgram.from({vertex:W__namespace.defaultFilterVert,fragment:n.ƀeg(t*k)}),resources:{expandUniforms:{uColor:{value:new Float32Array(3),type:"vec3<f32>"},uExpandSquared:{value:0,type:"f32"}}},resolution:k}),this.ƀdk=t,this.ƀdk=t*k,this.ƀdk<0)throw new Error("ExpandWithColorFilter: Expand * resolution cannot be smaller than 0");if(this.ƀdk>10)throw new Error("ExpandWithColorFilter: Expand * resolution cannot be higher than 10");helpersLib.Comparator.isInteger(this.ƀdk)||(this.ƀdk=Math.floor(this.ƀdk));let i=helpersLib.ColorHelper.normalize(e);this.resources.expandUniforms.uniforms.uColor=new Float32Array([i.red,i.green,i.blue]),this.resources.expandUniforms.uniforms.uExpandSquared=this.ƀdk*this.ƀdk,this.padding=this.ƀdk;}};var Oe=class extends W__namespace.Filter{static{h(this,"GlowFilter");}constructor(t){super({resolution:k,compatibleRenderers:W__namespace.RendererType.WEBGL});let e={blurRadius:1,expand:0,color:helpersLib.ColorHelper.white,...t};this.ƀdl=new Ae(e.expand,e.color);let i=helpersLib.Comparator.isNumber(e.blurRadius)?new helpersLib.Vector(e.blurRadius,e.blurRadius):e.blurRadius;this.ƀak=new Nt(i),this.padding=Math.max(i.x,i.y)+e.expand,this.ƀak.blendMode="add";}apply(t,e,i,s){let r=W__namespace.TexturePool.getSameSizeTexture(e);this.ƀdl.apply(t,e,r,true),this.ƀak.apply(t,r,i,s),W__namespace.TexturePool.returnTexture(r);}};var re=class n{static{h(this,"GlowSpriteGenerator");}static{this.ƀfb=new Map;}static createGlowSpriteFromSprite(t,e,i){let s=this.ƀbj(e),r=helpersLib.Comparator.isNumber(s.blurRadius)?new helpersLib.Vector(s.blurRadius,s.blurRadius):s.blurRadius,o=this.ƀei(t.texture,r,s.expand,s.color,i),a=new W__namespace.Sprite(o);return this.ƀkh(a,helpersLib.Vector.fromVec2(t.anchor),Math.max(r.x,r.y)+s.expand),a.alpha=s.glowAlpha,a.blendMode=s.blendMode,a}static ƀei(t,e,i,s,r){if(!t.id)throw new Error("GlowSpriteGenerator: baseTexture should have an id");if(r){let o=`${t.id}-${i}-${e.x}-${e.y}-${s.r}-${s.g}-${s.b}`;if(n.ƀfb.has(o))return n.ƀfb.get(o);{let a=this.ƀej(t,e,i,s);return n.ƀfb.set(o,a),a}}else return this.ƀej(t,e,i,s)}static ƀej(t,e,i,s){let r=new W__namespace.Sprite(t);r.filters=[new Oe({blurRadius:e,expand:i,color:s})];let o=new W__namespace.Container;o.addChild(r);let a=Math.max(e.x,e.y)+i,l=y.instance.generateTexture({target:o,frame:new W__namespace.Rectangle(-a,-a,r.width+a*2,r.height+a*2)});return l.id=G.insertAsset(l),o.destroy({children:true}),l}static ƀkh(t,e,i){let s=(i+(t.width-i*2)*e.x)/t.width,r=(i+(t.height-i*2)*e.y)/t.height;t.anchor.set(s,r);}static ƀbj(t){let e={glowAlpha:1,blurRadius:5,expand:0,color:helpersLib.ColorHelper.white,blendMode:"add"};return t&&(e={...e,...t}),e}};T.onHardReset.subscribe(()=>{re.ƀfb.clear();}).attachToRoot();var et=class n extends d{static{h(this,"Sprite");}static createByName(t){let e=y.setupOptions.spriteDefinitions[t];if(!e)throw new Error(`Sprite: Could not find sprite definition with name ${t}.`);return new n(e)}static createSnapshotSprite(t){let e=t.ƀiv,i=y.instance.generateTexture({target:e,resolution:2,antialias:true,textureSourceOptions:{scaleMode:"linear"}}),r={id:G.insertAsset(i),scale:t.scale,size:t.size,anchor:helpersLib.Vector.zero,destroyAssetOnDestroy:true};return new n(r,{ignoreAnchor:true})}constructor(t,e={}){if(super(),this.ƀlx=1,!t)throw new Error("Sprite: spriteDefinition cannot be nullish!");this.ƀlc=t,this.pixiSprite=new W__namespace.Sprite(G.getAsset(t.id)),this.ƀiv.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.ƀlc.destroyAssetOnDestroy&&(G.destroyAsset(this.ƀlc.id),this.ƀix&&G.destroyAsset(this.ƀix.texture.id)),this.ƀgw?.destroy(),this.ƀam?.destroy(),this.ƀix&&!this.ƀix.destroyed&&this.ƀix.destroy());}setTextureScale(t){return this.textureScale=t,this}get textureScale(){return this.ƀlx}set textureScale(t){this.ƀlx=t,this.pixiSprite.scale.set(t);}get size(){return new helpersLib.Vector(this.pixiSprite.width,this.pixiSprite.height)}getMask(){return this.pixiSprite}set interactive(t){super.interactive=t,t&&this.ƀlc.boundingShapes&&!this.ƀiv.hitArea&&(this.ƀiv.hitArea=new vs(this.ƀlc.boundingShapes,this.size,helpersLib.Vector.fromVec2(this.ƀlc.anchor)));}setMipmap(t){return this.mipmap=t,this}get mipmap(){return this.pixiSprite.texture.source.autoGenerateMipmaps}set mipmap(t){this.pixiSprite.texture.source.autoGenerateMipmaps=t;}setBlendMode(t){return this.blendMode=t,this}get blendMode(){return this.pixiSprite.blendMode}set blendMode(t){this.pixiSprite.blendMode=t;}setTint(t){return this.tint=t,this}get tint(){return new W__namespace.Color(this.pixiSprite.tint).toRgb()}set tint(t){this.pixiSprite.tint=t;}setShapeAlpha(t){return this.pixiSprite.alpha=t,this}get shapeAlpha(){return this.pixiSprite.alpha}set shapeAlpha(t){this.pixiSprite.alpha=t;}setGlowAlpha(t){return this.glowAlpha=t,this}get glowAlpha(){if(this.ƀix)return this.ƀix.alpha;throw new Error("Sprite: getGlowFilterAlpha cannot be called before glow filter is added.")}set glowAlpha(t){if(this.ƀix)this.ƀix.alpha=t;else throw new Error("Sprite: setGlowFilterAlpha cannot be called before glow filter is added.")}getAlignmentVector(t){let e=helpersLib.Vector.fromVec2(this.ƀlc.anchor).to(t);return new helpersLib.Vector(this.size.x*e.x,this.size.y*e.y)}setGlowEffect(t){return this.ƀix&&(this.ƀix.destroy(),this.ƀix=void 0),t&&(this.ƀix=re.createGlowSpriteFromSprite(this.pixiSprite,t,!this.ƀlc.destroyAssetOnDestroy),this.ƀix.position.set(this.pixiSprite.x,this.pixiSprite.y),this.ƀix.scale.set(this.pixiSprite.scale.x,this.pixiSprite.scale.y),this.ƀiv.addChild(this.ƀix)),this}showBoundingShape(t){return t?this.ƀam||(this.ƀam=this.ƀby().setAlpha(.3).setTint({r:0,g:0,b:200}).displayParent(this)):this.ƀam&&(this.ƀam.destroy(),this.ƀam=void 0),this}getBoundingMask(){if(!this.ƀgw){if(!this.ƀlc.boundingShapes)throw new Error("Sprite: cropOverflowingParts cannot be used without polygonDefinition!");this.ƀgw=this.ƀby(),this.ƀgw.displayParent(this);}return this.ƀgw}ƀby(){if(!this.ƀlc.boundingShapes)throw new Error("Sprite: bounding shape cannot be created without polygonDefinition!");return A.createPolygon(this.ƀlc.boundingShapes,helpersLib.ColorHelper.white).toSprite().attach(this)}download(){let t=y.instance.renderer.extract.canvas(this.ƀiv);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}},vs=class{static{h(this,"CompositeHitArea");}constructor(t,e,i){this.ƀkr=t.map(s=>new W__namespace.Polygon(s.map(r=>new W__namespace.Point(r.x,r.y))));}contains(t,e){return this.ƀkr.some(i=>i.contains(t,e))}};var Me=class{static{h(this,"DashedLineHelper");}static getLines(t,e,i){let s=helpersLib.Vector.fromTo(t,e),r=s.normalize(),o=s.length-i.lineStartGap-i.lineEndGap,a=[];if(o<=0)return a;let l=t.add(r.normalize(i.lineStartGap));if(o<=i.dashGap+i.dashLength*.5)return a.push({from:l,to:l.add(r.normalize(o))}),a;let c=o-i.dashGap,p=i.dashLength+i.dashGap,f=Math.floor(c/p),g=c-p*f;f>=1&&g<i.dashLength&&(g+=p,f--);let v=r.normalize(g/2),x=r.normalize(i.dashGap);if(a.push({from:l,to:l.add(v)}),l=l.add(v),f>0){let M=r.normalize(i.dashLength);helpersLib.ArrayHelper.createEmptyArray(f).forEach(()=>{l=l.add(x),a.push({from:l,to:l.add(M)}),l=l.add(M);});}return l=l.add(x),a.push({from:l,to:l.add(v)}),a}};var A=class n extends d{static{h(this,"Graphics");}static{this.ƀdb=new Map;}static createArrow(t,e){let i=new W__namespace.Graphics;return [[{x:0,y:-t/2},{x:t*3/8,y:-t/8},{x:t/4,y:0},{x:0,y:-t/4},{x:-t/4,y:0},{x:-t*3/8,y:-t/8}],[{x:0,y:-t/4},{x:t/8-t/30,y:-t/8-t/30},{x:t/8-t/30,y:t*7/16},{x:-t/8+t/30,y:t*7/16},{x:-t/8+t/30,y:-t/8-t/30}]].forEach(r=>{i.poly(r.map(o=>new W__namespace.Point(o.x,o.y))).fill(e);}),new n(i,JSON.stringify({type:"arrow",size:t,color:e}))}static createDashedLine(t,e,i){let s={width:2,dashLength:10,dashGap:4,lineStartGap:0,lineEndGap:0,color:helpersLib.ColorHelper.white,...i},r=new W__namespace.Graphics;return Me.getLines(t,e,s).forEach(a=>{r.moveTo(a.from.x,a.from.y).lineTo(a.to.x,a.to.y);}),r.stroke({width:s.width,color:s.color}),new n(r,JSON.stringify({type:"dashedLine",from:t,to:e,options:s}))}static createVector(t,e,i){let s=new W__namespace.Graphics;return s.moveTo(t.x,t.y),s.lineTo(e.x,e.y),s.stroke({width:2,color:i}),s.circle(t.x,t.y,3),s.fill(helpersLib.ColorHelper.white),s.stroke({width:1,color:i}),new n(s,JSON.stringify({type:"line",start:t,end:e,color:i}))}static createRectangleBorders(t,e,i){let s=new W__namespace.Graphics;return s.rect(0,0,t.x,e),s.rect(0,e,e,t.y-e*2),s.rect(t.x-e,e,e,t.y-e*2),s.rect(0,t.y-e,t.x,e),s.fill(i),new n(s,JSON.stringify({type:"rectangle-borders",size:t,borderSize:e,color:i}))}static createRectangle(t,e=helpersLib.ColorHelper.white){let i=new W__namespace.Graphics;return i.rect(0,0,t.x,t.y).fill(e),new n(i,JSON.stringify({type:"rectangle",size:t,color:e}))}static createCircle(t,e){let i=new W__namespace.Graphics;return i.circle(0,0,t).fill(e),new n(i,JSON.stringify({type:"circle",radius:t,color:e}))}static createElipse(t,e){let i=new W__namespace.Graphics;return i.ellipse(0,0,t.x,t.y).fill(e),new n(i,JSON.stringify({type:"elipse",size:t,color:e}))}static createPolygon(t,e){let i=new W__namespace.Graphics,s=JSON.stringify({type:"polygon",polygon:t,color:e});return t.forEach(r=>{i.poly(r.map(o=>new W__namespace.Point(o.x,o.y))).fill(e);}),new n(i,s)}static createRegularPolygon(t,e,i){let s=new W__namespace.Graphics,r=new helpersLib.Radian(helpersLib.PI_360/t);s.moveTo(e,0);for(let o=1;o<=t;o++){let l=r.multiply(o).vector.normalize(e),c=e+l.x,p=e+l.y;s.lineTo(c,p);}return s.fill(i),new n(s,JSON.stringify({type:"regular-polygon",sides:t,radius:e,color:i}))}constructor(t,e){super(),this.ƀiv.addChild(t),this.pixiGraphics=t,this.ƀap=e;}destroy(){this.destroyed||(super.destroy(),!this.pixiGraphics.destroyed&&this.pixiGraphics.destroy());}toSprite(t){let e={cacheName:this.ƀap,cache:false,...t},i=this.ƀex(e.cacheName,e.cache),s={id:i.textureID,scale:1,size:i.bounds,anchor:{x:0,y:0},destroyAssetOnDestroy:!e.cache},r=new et(s,{texturePosition:i.bounds,ignoreAnchor:true});return this.attachToRoot(),this.destroy(),r}ƀex(t,e){if(e){let i=n.ƀdb.get(t);return i||(i=this.ƀck(),n.ƀdb.set(t,i)),i}else return this.ƀck()}ƀck(){let t=y.instance.generateTexture(this.pixiGraphics);t.id=G.insertAsset(t);let e=this.pixiGraphics.getBounds();return {textureID:t.id,bounds:new helpersLib.Vector(e.x,e.y)}}};var li=class{static{h(this,"AnimationEaseInOutFlatter");}start(){}multiplierFunction(t){return 3*(1-t)*Math.pow(t,2)+Math.pow(t,3)}},Ot=class n extends d{static{h(this,"ScrollMaskUI");}static{this.ƀdb=new Map;}constructor(t,e,i,s=exports.ScrollDirection.Vertical){if(super(),i<0)throw new Error("The padding of the scroll mask cannot be lower than '0'");if(e.y<i*2)throw new Error(`The height of the scroll mask cannot be lower than '${i*2}'`);let r=new d;s===exports.ScrollDirection.Horizontal?this.ƀce(e,i,r):this.ƀcl(e,i,r),this.ƀgw=et.createSnapshotSprite(r).attach(this),r.destroy(),t.setMask(this.ƀgw);}ƀcl(t,e,i){e>0&&this.ƀcb(new helpersLib.Vector(t.x,e)).displayParent(i).attach(i),A.createRectangle(new helpersLib.Vector(t.x,t.y-e*2),helpersLib.ColorHelper.white).toSprite().setPosition(new helpersLib.Vector(0,e),{round:false}).displayParent(i).attach(i),e>0&&this.ƀcb(new helpersLib.Vector(t.x,e)).setPosition(new helpersLib.Vector(t.x,t.y),{round:false}).setRotation(helpersLib.Radian.get180).displayParent(i).attach(i);}ƀce(t,e,i){e>0&&this.ƀcb(new helpersLib.Vector(t.y,e)).setPosition(new helpersLib.Vector(0,t.y),{round:false}).setRotation(helpersLib.Radian.get270).displayParent(i).attach(i),A.createRectangle(new helpersLib.Vector(t.x-e*2,t.y),helpersLib.ColorHelper.white).toSprite().setPosition(new helpersLib.Vector(e,0),{round:false}).displayParent(i).attach(i),e>0&&this.ƀcb(new helpersLib.Vector(t.y,e)).setPosition(new helpersLib.Vector(t.x,0),{round:false}).setRotation(helpersLib.Radian.get90).displayParent(i).attach(i);}ƀcb(t){let i={id:this.ƀcc(t.y),scale:1,size:t,anchor:{x:0,y:0}};return new et(i,{textureSize:t,ignoreAnchor:true})}ƀcc(t){let e=JSON.stringify({type:"gradient",length:t}),i=n.ƀdb.get(e);if(!i){let s=document.createElement("canvas");s.width=1,s.height=t;let r=s.getContext("2d");if(r){let o=new li;helpersLib.ArrayHelper.createIntegerArray(t).forEach(l=>{let c=`rgba(255, 255, 255, ${o.multiplierFunction(l/t)})`;r.fillStyle=c,r.fillRect(0,l,1,1);});let a=W__namespace.Texture.from(s);i=G.insertAsset(a),n.ƀdb.set(e,i);}else throw new Error("Canvas context is null")}return i}};exports.SlideStateAnimationState=void 0;(function(n){n[n.Appear=1]="Appear",n[n.Disappear=2]="Disappear";})(exports.SlideStateAnimationState||(exports.SlideStateAnimationState={}));var De=class extends actionsLib.Attachable{static{h(this,"SlideStateAnimation");}onStateChange(t){return this.ƀhx.subscribe(e=>t(e.state,e.index)).attach(this),this}onValueChange(t){return this.ƀhz.subscribe(e=>t(e.value,e.index)).attach(this),this}get state(){return {value:this.ƀlj.state.value,item:this.ƀfy,nextItem:this.ƀho,queuedItem:this.ƀlj.state.queuedItem,animationState:this.ƀo}}constructor(t){super(),this.ƀo="idle",this.ƀhx=new actionsLib.Action,this.ƀhz=new actionsLib.Action,this.ƀic={duration:500,animation:b.easeInOutCubic,...t},this.ƀlj=new jt({duration:this.ƀic.duration,animation:this.ƀic.animation}).onStateChange((e,i)=>this.ƀfe(e,i)).onValueChange(e=>this.ƀfj(e)).attach(this);}setIndex(t,e){if(!helpersLib.Comparator.isInteger(t))throw new Error("SlideStateAnimation: index must be an integer!");this.ƀfy===void 0?(this.ƀfy=t,this.ƀhx.trigger({state:exports.SlideStateAnimationState.Appear,index:t}),this.ƀlj.setItem(t,e)):this.ƀfy!==t?this.ƀho!==t?this.ƀo==="idle"?(this.ƀo=t>this.ƀfy?"transitionForward":"transitionBackward",this.ƀho=t,this.ƀhx.trigger({state:exports.SlideStateAnimationState.Appear,index:this.ƀho}),this.ƀlj.setItem(t,e)):this.ƀlj.setItem(t,e):this.ƀo==="reverting"&&this.ƀho===t&&(this.ƀo=t>this.ƀfy?"transitionForward":"transitionBackward",this.ƀlj.setItem(t,e)):(this.ƀo==="transitionForward"||this.ƀo==="transitionBackward")&&(this.ƀo="reverting",this.ƀlj.setItem(t,e));}ƀfe(t,e){switch(this.ƀfy!==void 0&&this.ƀfy!==t&&this.ƀfy!==e&&this.ƀhx.trigger({state:exports.SlideStateAnimationState.Disappear,index:this.ƀfy}),this.ƀho!==void 0&&this.ƀho!==t&&this.ƀho!==e&&this.ƀhx.trigger({state:exports.SlideStateAnimationState.Disappear,index:this.ƀho}),e!==void 0&&e!==this.ƀfy&&e!==this.ƀho&&this.ƀhx.trigger({state:exports.SlideStateAnimationState.Appear,index:e}),this.ƀo){case "idle":break;case "transitionForward":case "transitionBackward":e===void 0?(this.ƀo="idle",this.ƀfy=this.ƀho,this.ƀho=void 0):this.ƀfy!==t&&this.ƀff(t,e);break;case "reverting":e===void 0?(this.ƀo="idle",this.ƀho=void 0):this.ƀfy!==e&&this.ƀff(t,e);break;default:{this.ƀo;throw new Error}}}ƀff(t,e){this.ƀfy=t,this.ƀho=e,this.ƀhz.trigger({value:0,index:this.ƀfy}),this.ƀo=this.ƀfy<this.ƀho?"transitionForward":"transitionBackward";}ƀfj(t){let e=1;(this.ƀo==="transitionBackward"||this.ƀo==="reverting"&&this.ƀfy!==void 0&&this.ƀho!==void 0&&this.ƀfy>this.ƀho)&&(e=-1),(this.ƀo==="idle"||t!==0)&&this.ƀhz.trigger({value:helpersLib.NumberHelper.ensurePositiveZero(-e*t),index:this.ƀfy}),this.ƀho!==void 0&&this.ƀhz.trigger({value:helpersLib.NumberHelper.ensurePositiveZero(e*(1-t)),index:this.ƀho});}};exports.ScrollDirection=void 0;(function(n){n[n.Horizontal=1]="Horizontal",n[n.Vertical=2]="Vertical";})(exports.ScrollDirection||(exports.ScrollDirection={}));var ci=class extends d{static{h(this,"SlideInContentByIndex");}constructor(t,e){super(),this.ƀca=t,this.ƀcx="x",this.ƀbq=new Map,this.ƀic={duration:300,animation:b.easeInOutCubic,size:new helpersLib.Vector(500,500),margin:20,direction:exports.ScrollDirection.Horizontal,...e};let i=this.ƀic.direction===exports.ScrollDirection.Horizontal?new helpersLib.Vector(this.ƀic.size.x+this.ƀic.margin*2,this.ƀic.size.y):new helpersLib.Vector(this.ƀic.size.x,this.ƀic.size.y+this.ƀic.margin*2),s=new d().setPosition(this.ƀic.direction===exports.ScrollDirection.Horizontal?new helpersLib.Vector(-this.ƀic.margin,0):new helpersLib.Vector(0,-this.ƀic.margin),{round:false}).displayParent(this).attach(this);this.ƀcf(i,this.ƀic.margin,this.ƀic.direction,s),this.ƀcx=this.ƀic.direction===exports.ScrollDirection.Horizontal?"x":"y",this.ƀlj=new De({duration:this.ƀic.duration,animation:this.ƀic.animation}).onStateChange((r,o)=>{if(r===exports.SlideStateAnimationState.Appear){let a=new d().displayParent(this).attach(this);this.ƀbq.set(o,a),this.ƀca({index:o,container:a});}else {let a=this.ƀbq.get(o);a&&(a.destroy(),this.ƀbq.delete(o));}}).onValueChange((r,o)=>{let a=this.ƀbq.get(o);if(a){let l={x:0,y:0};l[this.ƀcx]=i[this.ƀcx]*r+this.ƀic.margin,a.setPosition(helpersLib.Vector.fromVec2(l),{round:false});}}).attach(this),this.addChildTo=s;}setIndex(t,e){return this.ƀlj.setIndex(t,e),this}ƀcf(t,e,i,s){new Ot(s,new helpersLib.Vector(t.x,t.y),e,i).attach(this);}},tr=class extends ci{static{h(this,"SlideInContent");}constructor(t,e,i){super(s=>{let r=this.indexToItem.get(s.index);if(r)e({index:s.index,item:r,container:s.container});else throw new Error(`SlideInContent: The item with index '${s.index}' is not part of the items list`)},i),this.itemToIndex=new Map,this.indexToItem=new Map,t.forEach((s,r)=>{this.itemToIndex.set(s,r),this.indexToItem.set(r,s);});}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 oe=class{static{h(this,"VectorSet");}constructor(){this.ƀmk=new Map;}add(t){let e=this.ƀmk.get(t.x);e||(e=new Set,this.ƀmk.set(t.x,e)),e.add(t.y);}has(t){let e=this.ƀmk.get(t.x);return e?e.has(t.y):false}delete(t){let e=this.ƀmk.get(t.x);return e?e.delete(t.y):false}};var pi=class{static{h(this,"DeltaTime");}static adjustMultiplier(t,e){return Math.pow(t,e)}};var _=class{static{h(this,"PositionToGridPositionConverter");}static areaToGridArea(t,e){return new helpersLib.Rectangle(this.positionToGridPosition(t.topLeft,e),this.positionToGridPosition(t.bottomRight,e))}static positionToGridPosition(t,e){return t.divideNumber(e).floor()}static gridPositionToPosition(t,e){return t.add(new helpersLib.Vector(.5,.5)).multiplyNumber(e)}};var ne=class{static{h(this,"ClosestAvailableSpaceHelper");}static findByConvertingGridSpace(t,e,i){let s=new helpersLib.Vector(Math.ceil(e.size.x/i)-1,Math.ceil(e.size.y/i)-1),r=_.areaToGridArea(e,i);if(this.ƀax(t,r))return helpersLib.Vector.zero;let o=t.movePositionInsideGrid(r.topLeft),a=helpersLib.Vector.fromTo(r.topLeft,o),l=this.find(t,o,s);if(l){let c=l.add(a),p=helpersLib.Vector.fromTo(r.topLeft.multiplyNumber(i),e.topLeft);return new helpersLib.Vector(c.x*i+((s.x+1)*i-e.size.x)/2-p.x,c.y*i+((s.y+1)*i-e.size.y)/2-p.y)}}static find(t,e,i){let s=new oe,r=new helpersLib.Queue(e);for(;r.notEmpty;){let o=r.pop();s.add(o);let a=new helpersLib.Rectangle(o,o.add(i));if(this.ƀax(t,a))return helpersLib.Vector.fromTo(e,o);t.getNeighborPositions(o,"orthogonal").forEach(l=>{s.has(l)||r.add(l);});}}static ƀax(t,e){if(!t.isAreaWithinBounds(e))return false;for(let i=e.topLeft.y;i<=e.bottomRight.y;i++)for(let s=e.topLeft.x;s<=e.bottomRight.x;s++)if(!t.get(new helpersLib.Vector(s,i)))return false;return true}};var er=Math.SQRT2-1,_s=class{static{h(this,"PathfinderNode");}constructor(t,e){this.position=t,this.distanceToEnd=e,this.closed=false,this.distanceFromStart=Number.MAX_SAFE_INTEGER,this.parent=void 0;}get pathLength(){return this.distanceFromStart+this.distanceToEnd}getStepCost(t){return this.position.x!==t.position.x&&this.position.y!==t.position.y?Math.SQRT2:1}createSolutionPath(t){let e=[],i=this;for(;i!==void 0;)e.push(i.position),i=i.parent;return e.reverse(),{directPathAvailable:t,path:e}}},Vs=class{static{h(this,"PathfinderGrid");}constructor(t,e,i,s){this.ƀfd=t,this.ƀlr=i,this.ƀhn=s,this.ƀib=new helpersLib.BinaryHeap("min"),this.ƀhq=new helpersLib.Grid({size:t.size,defaultValue:void 0});let r=this.ƀcg(e);r.distanceFromStart=0,this.ƀib.add(r.pathLength,r),this.ƀaf=r;}get hasOpenNodes(){return this.ƀib.size>0}getNeighbors(t){let e=[];for(let i of this.ƀfd.getNeighborPositions(t.position,this.ƀhn))if(this.ƀfd.get(i)){let s=this.ƀhq.get(i)??this.ƀcg(i);s.closed||e.push(s);}return e}popLowestPathCostNode(){let t=this.ƀib.pop();return t.closed=true,t.distanceToEnd<this.ƀaf.distanceToEnd&&(this.ƀaf=t),t}changeNodeCost(t,e,i){t.distanceFromStart=e,t.parent=i,this.ƀib.updatePriority(t,t.pathLength)||this.ƀib.add(t.pathLength,t);}getBestClosedNode(){return this.ƀaf}ƀcg(t){let e=Math.abs(t.x-this.ƀlr.x),i=Math.abs(t.y-this.ƀlr.y),s=this.ƀhn==="orthogonal"?e+i:e>i?e+er*i:i+er*e,r=new _s(t,s);return this.ƀhq.isPointWithinBounds(t)&&this.ƀhq.set(t,r),r}},ae=class{static{h(this,"PathFinder");}static findPath(t,e,i,s){let r=new Vs(t,e,i,s);for(;r.hasOpenNodes;){let o=r.popLowestPathCostNode();if(o.position.isEqual(i))return o.createSolutionPath(true);for(let a of r.getNeighbors(o)){let l=o.distanceFromStart+o.getStepCost(a);l<a.distanceFromStart&&r.changeNodeCost(a,l,o);}}return r.getBestClosedNode().createSolutionPath(false)}};var Wt=[-1,0,0,1,-1,-1,1,1],$t=[0,-1,1,0,-1,1,-1,1],rr=[10,10,10,10,14,14,14,14],ui=Wt.map((n,t)=>new helpersLib.Vector(n,$t[t]).radian),he=class{static{h(this,"VectorFieldPathFinder");}constructor(t,e){this.ƀlq=t;let i=e.width,s=e.height,r=this.ƀel(e.size);this.ƀmt=i,this.ƀfm=s,this.ƀfn=r;let o=i*s,a=new Uint8Array(o),l=new Int32Array(o),c=e.snapshot();for(let x=0;x<s;x++){let M=c[x],L=x*i;for(let I=0;I<i;I++)M[I]?(a[L+I]=1,l[L+I]=r):l[L+I]=-1;}this.ƀz=a,this.ƀms=l,this.ƀcw=new Uint8Array(o),this.ƀcv=new Array(o);let p=[-1,-i,i,1,-i-1,i-1,-i+1,i+1],f=new Array(r),g=e.cropAreaOutsideOfTheGrid(t),v=[];for(let x=g.topLeft.y;x<=g.bottomRight.y;x++)for(let M=g.topLeft.x;M<=g.bottomRight.x;M++)l[x*i+M]=0,v.push(x*i+M);f[0]=v;for(let x=0;x<r;x++){let M=f[x];if(M){f[x]=void 0;for(let L=0;L<M.length;L++){let I=M[L];if(l[I]!==x)continue;let K=I%i;if(K>0&&K<i-1&&I>=i&&I<o-i){let _t=x+10,$=x+14;for(let H=0;H<8;H++){let j=I+p[H],at=H<4?_t:$;if(at<l[j]){l[j]=at;let Rt=f[at];Rt?Rt.push(j):f[at]=[j];}}}else {let _t=(I-K)/i;for(let $=0;$<8;$++){let H=K+Wt[$],j=_t+$t[$];if(H<0||j<0||H>=i||j>=s)continue;let at=j*i+H,Rt=x+rr[$];if(Rt<l[at]){l[at]=Rt;let Fi=f[Rt];Fi?Fi.push(at):f[Rt]=[at];}}}}}}for(let x=0;x<o;x++)l[x]===-1&&(l[x]=r);}getDirectionToTarget(t){if(t.isInsideRectangle(this.ƀlq))return;let e=this.ƀmt,i=Math.round(t.x),s=Math.round(t.y);i=Math.max(0,Math.min(e-1,i)),s=Math.max(0,Math.min(this.ƀfm-1,s));let r=s*e+i;if(this.ƀcw[r]===1)return this.ƀcv[r];let o=this.ƀaq(i,s,r);return this.ƀcw[r]=1,this.ƀcv[r]=o,o}ƀaq(t,e,i){let s=this.ƀmt,r=this.ƀfm,o=[];for(let a=0;a<8;a++){let l=t+Wt[a],c=e+$t[a];l>=0&&c>=0&&l<s&&c<r&&o.push(a);}if(this.ƀms[i]>=this.ƀfn){let a=o.filter(l=>this.ƀz[(e+$t[l])*s+t+Wt[l]]===1);if(a.length===0)return;if(a.length<o.length)return helpersLib.Radian.getAverage(...a.map(l=>ui[l]))}return this.ƀeb(t,e,o)}ƀeb(t,e,i){let s=this.ƀmt,r=[],o=this.ƀfn;for(let v=0;v<i.length;v++){let x=i[v],M=this.ƀms[(e+$t[x])*s+t+Wt[x]];if(M>=this.ƀfn)continue;let L=M+rr[x];L<o?(r.length=0,r.push(x),o=L):L===o&&r.push(x);}if(r.length===0)return;let a=0,l=0;for(let v=0;v<r.length;v++)a+=Wt[r[v]],l+=$t[r[v]];if(a===0&&l===0)return ui[helpersLib.Random.pickRandomElement(r)];let c=1/Math.sqrt(a*a+l*l),p=t+Math.round(a*c),f=e+Math.round(l*c);return p>=0&&f>=0&&p<s&&f<this.ƀfm&&this.ƀz[f*s+p]===1?new helpersLib.Vector(a,l).radian:ui[helpersLib.Random.pickRandomElement(r)]}get t(){let t=[];for(let e=0;e<this.ƀfm;e++){let i=new Array(this.ƀmt);for(let s=0;s<this.ƀmt;s++)i[s]=this.ƀms[e*this.ƀmt+s];t.push(i);}return new helpersLib.Grid(t)}ƀel(t){return (t.x+t.y)*20}};var R=class n{static{h(this,"AudioAssets");}static{this.ƀao=new Map;}static{this.context=new AudioContext;}static async load(t){await Promise.all(t.map(e=>fetch(e.url).then(i=>i.arrayBuffer()).then(i=>this.context.decodeAudioData(i)).then(i=>this.ƀao.set(e.id,i))));}static createSource(t){let e=n.ƀea(t),i=n.context.createBufferSource();return i.buffer=e,i}static ƀea(t){let e=this.ƀao.get(t);if(!e)throw new Error(`Audio: Sound with id ${t} was not loaded.`);return e}};T.onHardReset.subscribe(()=>{R.context=new AudioContext,R.ƀao.clear();}).attachToRoot();var rt=1e3,it=class n{static{h(this,"Audio");}static ƀkk(){return this.ƀgb=new n,this.ƀgb}constructor(){this.ƀgz=R.context.createGain(),this.ƀgy=R.context.createGain(),this.ƀhm=R.context.createGain(),this.ƀkv=R.context.createGain(),this.ƀgz.connect(R.context.destination),this.ƀgy.connect(this.ƀgz),this.ƀhm.connect(this.ƀgy),this.ƀkv.connect(this.ƀgy),this.ƀha=new O(this.ƀgz.gain,"value",{duration:500*2,animation:b.easeIn,reAnimateHandling:exports.ReAnimateHandlingType.CompletePrevious,completionHandling:exports.AnimationsCompletionHandlingType.StayInCurrentState}),this.ƀha.set({value:0});}setVolumes(t){this.ƀgy.gain.value=t.master,this.ƀhm.gain.value=t.music,this.ƀkv.gain.value=t.sound;}appear(t,e="ease"){switch(e){case "ease":return this.ƀha.set({value:t?0:1}),this.ƀha.animate({value:t?1:0}).chainToRoot();case "instant":return this.ƀha.set({value:t?1:0}),actionsLib.SingleEvent.instant();default:{throw new Error}}}};T.onHardReset.subscribe(()=>{it.ƀkk();}).attachToRoot();var Hs=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r};exports.CameraGateway=class yt extends ht(){static{h(this,"CameraGateway");}};exports.CameraGateway=Hs([u()],exports.CameraGateway);var js=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},Bt=class extends ht(){static{h(this,"CameraViewGateway");}};Bt=js([u()],Bt);var or;(function(n){n.BackgroundScreen="backgroundScreen",n.Background="background",n.Main="main",n.Foreground="foreground",n.ForegroundScreen="foregroundScreen";})(or||(or={}));exports.FocusingAnimation=void 0;(function(n){n[n.Instant=1]="Instant",n[n.EaseInOut=2]="EaseInOut",n[n.EaseOut=3]="EaseOut";})(exports.FocusingAnimation||(exports.FocusingAnimation={}));var le=class{static{h(this,"Camera");}get position(){return this.ƀas.getCameraPosition()}constructor(){this.ƀas=E.get(exports.CameraGateway),this.ƀaw=E.get(Bt),this.ƀas.createCamera(),this.layers=this.ƀaw.getLayers();}setPosition(t){this.ƀas.setPosition(t);}setTransition(t){this.ƀas.setTransition(t);}appear(t,e="alpha",i=0){return this.ƀaw.appear(t,e,i)}screenPositonToStagePosition(t){return this.ƀaw.screenPositonToStagePosition(t)}};var y=class n{static{h(this,"Game");}static get instance(){return this.ƀgb}static{this.pause=actionsLib.Reducer.createOr();}static{this.freeze=actionsLib.Reducer.createOr();}static get camera(){return this.ƀar}static get audio(){return this.ƀy}static appear(t,e){let i=e?.audio??"ease",s=e?.camera??"alpha";return actionsLib.ActionLib.all([this.audio.appear(t,i),this.camera.appear(t,s,i!=="instant"?0:500)]).mapToVoid().chainToRoot()}static get time(){return w.ƀly}static get setupOptions(){return this.ƀko}constructor(t){if(this.ƀjz=new actionsLib.Variable(helpersLib.Vector.zero),this.screenSize=this.ƀjz.notifier,this.ƀka=new actionsLib.Variable(helpersLib.Vector.zero),this.screenSizeCenter=this.ƀka.notifier,this.devMode=false,n.ƀgb)throw new Error("There can be only one Game instance!");this.ƀbm={screenResolution:void 0,maxScreenResolution:void 0,devMode:false,backgroundColor:helpersLib.ColorHelper.black,antialias:false,resolution:1,...t},this.devMode=this.ƀbm.devMode||false,this.ƀiu=new W__namespace.Application;let e=n.pause.effect(false).attachToRoot();n.freeze.subscribe(i=>{e.update(i),i?R.context.suspend():R.context.resume();}).attachToRoot();}async setup(t){n.ƀko=t;let e=helpersLib.JsonHelper.removeUndefinedProperties({backgroundColor:helpersLib.ColorHelper.rgbToHex(this.ƀbm.backgroundColor),autoStart:false,antialias:this.ƀbm.antialias,resolution:this.ƀbm.resolution,width:this.ƀbm.screenResolution?.width,height:this.ƀbm.screenResolution?.height,useBackBuffer:true,powerPreference:"high-performance",eventFeatures:{globalMove:false}});await this.ƀiu.init(e);let i=document.body.appendChild(this.ƀiu.canvas);this.ƀkj(i),await Promise.all([G.loadGameAssets(t.spriteAssetDefinitions),G.loadGameAssets(t.fontAssetDefinitions),R.load(t.soundAssetDefinitions)]),n.ƀgb=this,this.renderer=this.ƀiu.renderer,globalThis.ƀa=this.ƀiu,this.ƀfh(),n.ƀar=new le,n.ƀy=it.ƀkk(),this.ƀiu.start(),this.ƀiu.ticker.add(()=>{n.freeze.value||w.triggerUpdateTick(this.ƀiu.ticker.deltaMS);}),this.devMode&&await this.renderer.layout.enableDebug(true);}generateTexture(t){let e=this.renderer.layout,i=e.autoUpdate;e.autoUpdate=false;let s=this.renderer.generateTexture(t);return e.autoUpdate=i,s}setResolution(t){if(this.ƀiu.renderer.resolution!==t){this.ƀiu.renderer.resolution=t;let e=this.ƀew();this.ƀiu.renderer.resize(e.x,e.y);}}ƀfh(){this.ƀdg(),this.ƀki(),window.addEventListener("resize",t=>{this.ƀdg(),this.ƀki();});}ƀdg(){let t=this.ƀew();(t.x!==this.ƀiu.screen.width||t.y!==this.ƀiu.screen.height)&&this.ƀiu.renderer.resize(t.x,t.y);}ƀki(){let t=new helpersLib.Vector(this.ƀiu.screen.width,this.ƀiu.screen.height);this.ƀjz.value=t,this.ƀka.value=t.multiplyNumber(.5).round();}ƀew(){let t=this.ƀbm.screenResolution?.width??window.innerWidth,e=this.ƀbm.screenResolution?.height??window.innerHeight;return this.ƀbm.maxScreenResolution&&(t=Math.min(t,this.ƀbm.maxScreenResolution.width),e=Math.min(e,this.ƀbm.maxScreenResolution.height)),new helpersLib.Vector(t,e)}ƀkj(t){this.ƀbm.maxScreenResolution&&(t.style.maxWidth=`${this.ƀbm.maxScreenResolution?.width}px`,t.style.maxHeight=`${this.ƀbm.maxScreenResolution?.height}px`),t.style.width="100%",t.style.height="100%",t.style.backgroundColor=helpersLib.ColorHelper.rgbColorToString(this.ƀbm.backgroundColor);}};var lr=class{static{h(this,"ElectronGame");}static async start(t,e){let{devMode:i,maxScreenResolution:s}=await window.api.getOptions(),r=new y({...t,devMode:i,maxScreenResolution:s});await r.setup(e);let o=y.pause.effect(false).attachToRoot();window.api.onWindowFocus(l=>{o.update(!l);});let a=y.freeze.effect(false).attachToRoot();return document.addEventListener("visibilitychange",()=>{a.update(document.hidden);}),window.api.rendererReady(),window.api.setFullScreen(false),r}};var ce=class n extends actionsLib.IDAttachable{static{h(this,"Sound");}static createByName(t,e){let i=y.setupOptions.soundDefinitions[t];if(!i)throw new Error(`Sound: Could not find sound definition with name ${t}.`);return new n(i,e)}get volume(){return this.ƀdw.gain.value}set volume(t){this.setVolume(t);}setVolume(t){return this.ƀdw.gain.value=t,this}constructor(t,e){super(),this.ƀkw=t,this.ƀdw=R.context.createGain(),this.ƀdw.connect(it.ƀgb.ƀkv),this.ƀfl=this.ƀdw,e?.volume!==void 0&&(this.volume=e.volume),this.ƀjb(e?.time??0);}destroy(){this.destroyed||(super.destroy(),this.ƀll(),this.ƀdw?.disconnect());}ƀmi(){this.ƀfl.disconnect(),this.ƀfl.connect(it.ƀgb.ƀhm);}ƀjb(t){this.ƀll();let e=this.ƀkw.loop;if(this.ƀlf=helpersLib.NumberHelper.clamp(t,0,e?e.to:this.ƀkw.duration),e){let i=e.from,s=e.to;this.ƀjc({soundID:this.ƀkw.id,start:this.ƀlf,end:this.ƀlf<i?i:s,loop:false,onComplete:h(()=>{this.ƀkz.disconnect(),this.ƀjc({soundID:this.ƀkw.id,start:i,end:s,loop:true});},"onComplete")});}else this.ƀjc({soundID:this.ƀkw.id,start:this.ƀlf,end:void 0,loop:false,onComplete:h(()=>this.destroy(),"onComplete")});}ƀll(){this.ƀkz&&(this.ƀkz.onended=null,this.ƀkz.stop(),this.ƀkz.disconnect());}ƀjc(t){this.ƀkz=R.createSource(t.soundID),this.ƀkz.connect(this.ƀdw),t.onComplete&&(this.ƀkz.onended=t.onComplete),t.loop?(this.ƀkz.loop=true,this.ƀkz.loopStart=t.start,this.ƀkz.loopEnd=t.end??this.ƀkz.buffer.duration,this.ƀkz.start(0,t.start)):this.ƀkz.start(0,t.start,t.end?t.end-t.start:void 0);}};var Js=800,_e=-128,wt=class n extends ce{static{h(this,"AdvancedSound");}static createByName(t,e){let i=y.setupOptions.soundDefinitions[t];if(!i)throw new Error(`AdvancedSound: Could not find sound definition with name ${t}.`);return new n(i,e)}constructor(t,e){super(t,e),this.ƀly=new actionsLib.Variable(0),this.time=this.ƀly.notifier,this.ƀlh=R.context.currentTime-this.ƀlf,this.ƀly.value=this.ƀlf,w.beforeSceneUpdateAction.subscribe(()=>{this.ƀly.value=R.context.currentTime-this.ƀlh;}).attach(this),this.ƀfl.disconnect(),this.ƀkl(e?.fade?helpersLib.NumberHelper.clamp(e.fade,0,1):0),this.ƀkn(e?.muffle?helpersLib.NumberHelper.clamp(e.muffle,0,1):0),this.ƀfl.connect(it.ƀgb.ƀkv);}ƀkl(t=0){this.ƀdo=R.context.createGain(),this.ƀdo.gain.value=1-t,this.ƀdn=new O(this.ƀdo.gain,"value",{duration:500,animation:b.lineer,reAnimateHandling:exports.ReAnimateHandlingType.CompletePrevious,completionHandling:exports.AnimationsCompletionHandlingType.StayInCurrentState}),this.ƀfl.connect(this.ƀdo),this.ƀfl=this.ƀdo;}ƀkn(t=0){this.ƀhk=R.context.createBiquadFilter(),this.ƀhk.type="highshelf",this.ƀhk.frequency.value=Js,this.ƀhk.gain.value=t*_e,this.ƀhl=new O(this.ƀhk.gain,"value",{duration:500,animation:b.lineer,reAnimateHandling:exports.ReAnimateHandlingType.CompletePrevious,completionHandling:exports.AnimationsCompletionHandlingType.StayInCurrentState}),this.ƀfl.connect(this.ƀhk),this.ƀfl=this.ƀhk;}close(){return this.ƀbd?this.onDestroy():(this.ƀbd=true,this.fade(1,rt).notIdle().chain(this).tap(()=>this.destroy()).chainToRoot())}notifyOnTime(t){return this.time.value>t?actionsLib.SingleEvent.createDestroyed():actionsLib.SingleEvent.create(e=>{let i=this.time.filter(s=>s>=t).tap(()=>e()).attach(this);return ()=>i.destroy()})}setFade(t){t=helpersLib.NumberHelper.clamp(t,0,1),this.ƀdn.set({value:1-t});}fade(t,e=500){t=helpersLib.NumberHelper.clamp(t,0,1);let i=t>1-this.ƀdo.gain.value;return e===0?(this.ƀdn.set({value:1-t}),actionsLib.SingleEvent.instant()):this.ƀdn.animate({value:1-t},{duration:e,animation:i?b.easeOut:b.easeIn}).chain(this)}setMuffle(t){t=helpersLib.NumberHelper.clamp(t,0,1),this.ƀhl.set({value:t*_e});}muffle(t,e=500){return t=helpersLib.NumberHelper.clamp(t,0,1),e===0?(this.ƀhl.set({value:t*_e}),actionsLib.SingleEvent.instant()):this.ƀhl.animate({value:t*_e},{duration:e}).chain(this)}destroy(){this.destroyed||(this.ƀdo.disconnect(),this.ƀhk.disconnect()),super.destroy();}};var pe=class n extends actionsLib.IDAttachable{static{h(this,"Music");}static createByName(t,e){let i=y.setupOptions.soundDefinitions[t];if(!i)throw new Error(`AdvancedSound: Could not find sound definition with name ${t}.`);return new n(i,e)}get time(){switch(this.ƀky.value.type){case "paused":return this.ƀky.value.value.time;case "playing":return this.ƀky.value.value.time.value;default:{this.ƀky.value;throw new Error}}}get volume(){return this.ƀky.value.value.volume}set volume(t){this.setVolume(t);}setVolume(t){return this.ƀky.value.value.volume=t,this}constructor(t,e){super(),this.ƀic={stopPlayingOnPause:true,...e},this.ƀkx=t.id;let i;if(this.ƀic.stopPlayingOnPause&&y.pause.value)i={type:"paused",value:{time:0,volume:1}};else {let s=new wt(t,this.ƀic).attach(this);s.ƀmi(),i={type:"playing",value:s};}this.ƀky=new actionsLib.Variable(i),this.ƀic.stopPlayingOnPause&&(this.ƀih=y.pause.subscribe(s=>this.ƀfg(s)).attach(this));}notifyOnTime(t){return actionsLib.SingleEvent.create(e=>{let i=this.ƀky.asyncDropOngoing((s,r)=>{switch(s.type){case "paused":r.drop();break;case "playing":return s.value.notifyOnTime(t);default:{throw new Error}}}).toSingleEvent().tap(()=>e()).attach(this);return ()=>i.destroy()})}close(){return this.ƀbd?this.onDestroy():(this.ƀbd=true,this.ƀih?.destroy(),actionsLib.SingleEvent.instant().async(()=>actionsLib.ActionLib.all([this.ƀky.value.type==="playing"?this.ƀky.value.value.close():actionsLib.SingleEvent.instant(),this.ƀdp?.onDestroy()??actionsLib.SingleEvent.instant()]),"tap").chain(this).tap(()=>this.destroy()).chainToRoot())}ƀfg(t){if(t){if(this.ƀky.value.type==="playing"){let e=this.ƀky.value.value;this.ƀky.value={type:"paused",value:{time:e.time.value,volume:e.volume}},this.ƀdp=e,actionsLib.ActionLib.all([e.fade(1,rt),e.muffle(1,rt)]).tap(()=>{this.ƀdp=void 0,e.destroy();}).attach(this);}}else if(this.ƀky.value.type==="paused"){let{volume:e,time:i}=this.ƀky.value.value,s=wt.createByName(this.ƀkx,{volume:e,time:i,fade:1,muffle:1}).attach(this);s.ƀmi(),actionsLib.ActionLib.all([s.fade(0,rt),s.muffle(0,rt)]).attach(this),this.ƀky.value={type:"playing",value:s};}}};var mi=class extends actionsLib.IDAttachable{static{h(this,"MusicPlayer");}get time(){return this.ƀjd?this.ƀjd.time:0}get volume(){return this.ƀmr}set volume(t){this.setVolume(t);}setVolume(t){return this.ƀmr=t,this.ƀjd&&(this.ƀjd.volume=t),this.ƀig&&(this.ƀig.volume=t),this}constructor(t){super(),this.ƀmr=1,this.ƀic={stopPlayingOnPause:true,playWhenPaused:void 0,volume:1,...t},this.ƀmr=this.ƀic.volume,this.ƀic.playWhenPaused&&this.ƀkp(this.ƀic.playWhenPaused);}play(t){if(this.ƀbd)throw new Error("Play is called while music player is destroyed.");return this.ƀcq=t,actionsLib.SingleEvent.instant().async(()=>{let e=this.ƀjd;if(e)return this.ƀjd=void 0,e.close()}).map(()=>{if(this.ƀcq===t)return this.ƀjd=pe.createByName(t,{stopPlayingOnPause:this.ƀic.stopPlayingOnPause,volume:this.ƀmr}).attach(this),this.ƀjd}).chain(this)}stop(){return actionsLib.SingleEvent.instant().async(()=>{let t=this.ƀjd;if(t)return t.close().tap(()=>{t===this.ƀjd&&(this.ƀjd=void 0);})}).chain(this)}close(){return this.ƀbd?this.onDestroy():(this.ƀbd=true,this.ƀih?.destroy(),actionsLib.SingleEvent.instant().async(()=>actionsLib.ActionLib.all([this.ƀjd?.close()??actionsLib.SingleEvent.instant(),this.ƀig?.close()??actionsLib.SingleEvent.instant()]),"tap").chain(this).tap(()=>this.destroy()).chainToRoot())}ƀkp(t){this.ƀih=y.pause.toSequence().asyncDropOngoing(e=>e&&w.wait(rt).map(()=>e)).tap(e=>{if(e)this.ƀig=wt.createByName(t,{fade:1,volume:this.ƀmr}).attach(this),this.ƀig.ƀmi(),this.ƀig.fade(0);else if(this.ƀig){let i=this.ƀig;this.ƀig.fade(1).tap(()=>i.destroy()).attach(this),this.ƀig=void 0;}}).attach(this);}};var yi=class extends d{static{h(this,"Placeholder");}constructor(t){super(),this.ƀiy=new W__namespace.Graphics,this.ƀiy.rect(0,0,t.x,t.y).fill({color:0,alpha:1e-9}),this.ƀiv.addChild(this.ƀiy);}destroy(){this.destroyed||(super.destroy(),this.ƀiy.destroy());}};var zt=class{static{h(this,"TextStyleConverter");}static getPixiTextStyle(t){let e={color:helpersLib.ColorHelper.white,align:"center",fontFamily:"Arial",fontStyle:"normal",fontSize:18,lineHeight:void 0,wordWrapWidth:void 0,lineThrough:false,...t},i=t?.dropShadow===true?{}:t?.dropShadow,s={};if(i){let r={blur:4,angle:helpersLib.Radian.get60,distance:10,color:helpersLib.ColorHelper.black,alpha:.5,...i};s={dropShadow:{blur:r.blur,angle:r.angle.value,distance:r.distance,color:helpersLib.ColorHelper.rgbToHex(r.color),alpha:r.alpha}};}return helpersLib.JsonHelper.removeUndefinedProperties({fontFamily:e.fontFamily,fill:helpersLib.ColorHelper.rgbToHex(e.color),align:e.align,fontSize:e.fontSize,fontStyle:e.fontStyle,lineHeight:e.lineHeight,wordWrapWidth:e.wordWrapWidth,wordWrap:e.wordWrapWidth!==void 0,lineThrough:e.lineThrough,...s})}};var Ne=class{static{h(this,"RichTextDataInConverter");}static process(t,e){let i=new Set(e.styles?Object.keys(e.styles):[]),s=scriptEngineLib.RichTextSeparator.process(t,i),r=this.ƀfx(s,e),o=this.ƀs(r);return this.ƀla(o)}static ƀfx(t,e){let i=new Map,s=new Map,r=h((a,l)=>{if(s.has(l))return s.get(l);let c=zt.getPixiTextStyle(a);return s.set(l,c),c},"GetPixiStyle");return t.map(a=>{let{style:l,cacheKey:c}=this.ƀee(a.tags,e,i),p=r(l,c),f=W__namespace.CanvasTextMetrics.measureText(" ",new W__namespace.TextStyle(p),void 0,false);return {text:a.text,cacheKey:c,style:l,pixiStyle:p,spaceWidth:f.width}})}static ƀee(t,e,i){let s=t.join("+");if(i.has(s))return {style:i.get(s),cacheKey:s};let r=this.ƀbh(t,e);return i.set(s,r),{style:r,cacheKey:s}}static ƀbh(t,e){let i={...e.default};for(let l of t)e.styles&&e.styles[l]&&(i={...i,...e.styles[l]});let{wordWrapWidth:s,align:r,dropShadow:o,...a}=i;return a}static ƀs(t){let e=[],i=[];return t.forEach((s,r)=>{s.text.split(/\r?\n/).forEach((a,l)=>{l>0&&(e.push(i),i=[]),i.push({text:a,cacheKey:s.cacheKey,style:s.style,pixiStyle:s.pixiStyle,spaceWidth:s.spaceWidth});});}),e.push(i),e}static ƀla(t){let e=[];return t.forEach(i=>{if(i.length===0)throw new Error("Internal Error: Line is unexpectedly empty");let s=i.flatMap(r=>this.ƀlb(r.text).map(a=>{let l=new W__namespace.TextStyle(r.pixiStyle),c=W__namespace.CanvasTextMetrics.measureText(a,l,void 0,false);return {text:a,whitespace:a.trim()==="",style:{cacheKey:r.cacheKey,style:r.style,pixiStyle:l,height:c.height,ascent:c.fontProperties.ascent,descent:c.fontProperties.descent,width:c.width,spaceWidth:r.spaceWidth}}}));e.push(s);}),e}static ƀlb(t){if(t==="")return [""];let e=[],i="",s=t[0]===" ";for(let r=0;r<t.length;r++){let o=t[r],a=o===" ";a===s?i+=o:(e.push(i),i=o,s=a);}return i&&e.push(i),e}};var Le=class{static{h(this,"RichTextTypewriter");}get lineIsEmpty(){return this.ƀco.length===0}get remainingWidth(){return this.ƀmu-this.ƀcr}constructor(t,e){this.ƀmu=t,this.ƀgo=[],this.ƀco=[],this.ƀcr=0,this.ƀgn=new helpersLib.Vector(0,0),this.ƀcp=0;let i={rectangleCutOption:void 0,horizontalAlignment:"left",verticalAlignment:"bottom",...e};if(this.ƀfp=i.horizontalAlignment,this.ƀml=i.verticalAlignment,i.rectangleCutOption){if(i.rectangleCutOption.position.x<0||i.rectangleCutOption.position.x>=this.ƀmu||i.rectangleCutOption.position.y<0)throw new Error("Rectangle cut position is out of bounds");this.ƀcs={direction:i.rectangleCutOption.direction,rectangle:this.ƀbu(i.rectangleCutOption)};}}isSpaceAvailable(t){let e=Math.max(this.ƀcp,t.y),i=this.ƀen(this.ƀgn.y,this.ƀgn.y+e);return this.ƀcr+t.x<=i}insertWord(t){let e=Math.max(this.ƀcp,t.style.height);if(this.ƀco.length===0){let i=this.ƀeo(this.ƀgn.y,this.ƀgn.y+e);this.ƀgn=new helpersLib.Vector(i,this.ƀgn.y),this.ƀcr=this.ƀgn.x;}this.ƀco.push({chunk:t,position:new helpersLib.Vector(this.ƀcr,this.ƀgn.y)}),this.ƀcp=e,this.ƀcr+=t.style.width;}newLine(){let t=this.ƀgn.y+this.ƀcp,e=this.ƀeo(t,t);this.ƀds(),this.ƀgn=new helpersLib.Vector(e,t),this.ƀcr=this.ƀgn.x,this.ƀcp=0;}print(){return this.ƀds(),this.ƀgo}ƀds(){this.ƀco.length>0&&(this.ƀgo.push(this.ƀg(this.ƀco)),this.ƀco=[]);}ƀg(t){return t=this.ƀmn(t),t=this.ƀfr(t),t}ƀfr(t){if(this.ƀfp==="left")return t;let e=this.ƀgn.y+this.ƀcp,i=this.ƀeo(this.ƀgn.y,e),r=this.ƀen(this.ƀgn.y,e)-i,o=Math.min(r,t.reduce((l,c)=>l+c.chunk.style.width,0)),a;return this.ƀfp==="center"?a=(r-o)/2:a=r-o,t.map(l=>(l={chunk:l.chunk,position:new helpersLib.Vector(l.position.x+a,l.position.y)},l))}ƀmn(t){let e=Math.max(...t.map(s=>s.chunk.style.ascent)),i=Math.max(...t.map(s=>s.chunk.style.descent));return t.map(s=>{let r;switch(this.ƀml){case "top":r=i-s.chunk.style.descent;break;case "center":r=(i-s.chunk.style.descent+e-s.chunk.style.ascent)*.5;break;case "bottom":r=e-s.chunk.style.ascent;break;default:{this.ƀml;throw new Error}}return s={chunk:s.chunk,position:new helpersLib.Vector(s.position.x,s.position.y+r)},s})}ƀeo(t,e){return this.ƀcs&&(this.ƀcs.direction==="topLeft"||this.ƀcs.direction==="bottomLeft")&&(this.ƀcs.rectangle.isPointInside(new helpersLib.Vector(0,t),{includeEdges:false})||this.ƀcs.rectangle.isPointInside(new helpersLib.Vector(0,e),{includeEdges:false}))?this.ƀcs.rectangle.bottomRight.x:0}ƀen(t,e){return this.ƀcs&&(this.ƀcs.direction==="topRight"||this.ƀcs.direction==="bottomRight")&&(this.ƀcs.rectangle.isPointInside(new helpersLib.Vector(this.ƀmu,t),{includeEdges:false})||this.ƀcs.rectangle.isPointInside(new helpersLib.Vector(this.ƀmu,e),{includeEdges:false}))?this.ƀcs.rectangle.topLeft.x:this.ƀmu}ƀbu(t){let e,i;switch(t.direction){case "topRight":e=new helpersLib.Vector(t.position.x,-1/0),i=new helpersLib.Vector(1/0,t.position.y);break;case "topLeft":e=new helpersLib.Vector(-1/0,-1/0),i=t.position;break;case "bottomRight":e=t.position,i=new helpersLib.Vector(1/0,1/0);break;case "bottomLeft":e=new helpersLib.Vector(-1/0,t.position.y),i=new helpersLib.Vector(t.position.x,1/0);break;default:{t.direction;throw new Error}}return new helpersLib.Rectangle(e,i)}};var He=class{static{h(this,"ConsistentSpaceTextWrapper");}static wrapText(t,e){return t.forEach(i=>{i.forEach((s,r)=>{if(e.isSpaceAvailable(new helpersLib.Vector(s.style.width,s.style.height)))if(s.whitespace&&r===i.length-2){let o=i[i.length-1];e.isSpaceAvailable(new helpersLib.Vector(o.style.width+s.style.width,o.style.height))?e.insertWord(s):this.ƀmv(s,e);}else e.insertWord(s);else e.lineIsEmpty?e.insertWord(s):s.whitespace?this.ƀmv(s,e):(e.newLine(),e.insertWord(s));}),e.newLine();}),e.print()}static ƀmv(t,e){let i=Math.max(0,Math.floor(e.remainingWidth/t.style.spaceWidth)),s=Math.max(0,Math.min(i,t.text.length-1));if(s>0){let o={text:" ".repeat(s),whitespace:true,style:{...t.style,width:s*t.style.spaceWidth}};e.insertWord(o);}e.newLine();let r=t.text.length-s-1;if(r>0){let o={text:" ".repeat(r),whitespace:true,style:{...t.style,width:r*t.style.spaceWidth}};e.insertWord(o);}}};var je=class{static{h(this,"RichTextDataOutConverter");}static process(t){return t=this.ƀhe(t),t=this.ƀmc(t),this.ƀaz(t)}static ƀhe(t){return t.map(e=>{let i=[],s,r=true;return e.forEach(o=>{if(!s||s.chunk.style.cacheKey!==o.chunk.style.cacheKey)s&&i.push(s),s=o,r=o.chunk.whitespace;else {let a=s.chunk.text+o.chunk.text;r=o.chunk.whitespace&&r,s={chunk:{text:a,whitespace:r,style:{...s.chunk.style,width:s.chunk.style.width+o.chunk.style.width}},position:s.position};}}),s&&i.push(s),i})}static ƀmc(t){return t.map(e=>{if(e.length===0)return [];let i=e.pop();if(!i.chunk.whitespace||i.chunk.text===""){let s=i.chunk.text.length,r=i.chunk.text.trimEnd();s!==r.length?e.push({chunk:{text:r,whitespace:false,style:{...i.chunk.style,width:i.chunk.style.width-(s-r.length)*i.chunk.style.spaceWidth}},position:i.position}):e.push(i);}return e})}static ƀaz(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 fe=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=Ne.process(t,e),s=helpersLib.JsonHelper.removeUndefinedProperties({rectangleCutOption:e.rectangleCut,verticalAlignment:e.verticalAlignment,horizontalAlignment:e.default.align}),r=new Le(e.default.wordWrapWidth??1/0,s),o=He.wrapText(i,r);return je.process(o)}};var oo=1,ur=1/oo,de=class extends d{static{h(this,"Text");}get ƀlv(){if(!this.ƀlw){let t=new W__namespace.TextStyle(this.ƀja);this.ƀlw=W__namespace.CanvasTextMetrics.measureText(this.ƀlu,t);}return this.ƀlw}get ascent(){return this.ƀlv.fontProperties.ascent}constructor(t,e){super(),this.ƀja=zt.getPixiTextStyle(e),this.setText(t);}destroy(){this.destroyed||(super.destroy(),!this.ƀiz.destroyed&&this.ƀiz.destroy());}setAnchor(t){return this.anchor=t,this}get anchor(){return new helpersLib.Vector(this.ƀiz.anchor.x,this.ƀiz.anchor.y)}set anchor(t){this.ƀi=t,this.ƀiz.anchor.set(t.x,t.y),this.ƀjq();}setText(t){return this.ƀlu!==t&&(this.ƀlu=t,this.ƀjm()),this}setColor(t){let e=helpersLib.ColorHelper.rgbToHex(t);return this.ƀja.fill!==e&&(this.ƀja.fill=e,this.ƀjm()),this}ƀjm(){this.ƀiz?.destroy(),this.ƀlo?.destroy(),this.ƀlo=void 0,this.ƀlw=void 0;let t=new W__namespace.TextStyle(this.ƀja);this.ƀiz=new W__namespace.Text({text:this.ƀlu,style:t}),this.ƀi&&this.ƀiz.anchor.set(this.ƀi.x,this.ƀi.y),this.ƀjq(),this.ƀiz.scale.set(ur,ur),this.ƀiv.addChild(this.ƀiz),this.ƀja.lineThrough&&(this.ƀlo=this.ƀe(this.ƀiz,this.ƀja.fill),this.ƀiv.addChild(this.ƀlo));}ƀjq(){let t=W__namespace.CanvasTextMetrics.measureText(this.ƀlu,new W__namespace.TextStyle({...this.ƀja,dropShadow:false})),e=-this.ƀiz.anchor.x*t.width,i=-this.ƀiz.anchor.y*t.height;this.ƀiz.boundsArea=new W__namespace.Rectangle(e,i,t.width,t.height);}ƀe(t,e){let i=W__namespace.CanvasTextMetrics.measureText(t.text,t.style),s=Math.max(1,Math.round(i.lineHeight*.07)),r=s%2*.5,o=new W__namespace.Graphics,a=0;return i.lines.forEach((l,c)=>{let p=W__namespace.CanvasTextMetrics.measureText(l,t.style),f=Math.round(a+(p.fontProperties.ascent-p.fontProperties.descent)*.6+p.fontProperties.descent)+r,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),o.moveTo(Math.floor(g),f),o.lineTo(Math.floor(g+p.width),f),a+=p.lineHeight;}),o.stroke({width:s,color:e}),o}};var gi=class extends d{static{h(this,"RichText");}constructor(t,e){super(),fe.process(t,e).forEach(s=>new de(s.text,s.style).setPosition(s.position).displayParent(this).attach(this));}};var wi=class extends d{static{h(this,"UpdatableContainer");}},xi=class extends d{static{h(this,"DisplayObjectArray");}constructor(t,e){super(),this.ƀca=t,this.ƀcy=new Map,this.ƀic={trackBy:h((i,s)=>s,"trackBy"),positioning:{direction:"vertical",spacing:0},...e};}set(t){let e=new Set(this.ƀcy.keys()),i=0;t.forEach((s,r)=>{let o=this.ƀic.trackBy(s,r),a;this.ƀcy.has(o)?(a=this.ƀcy.get(o),e.delete(o),a.update(s)):(a=this.ƀca(s).displayParent(this).attach(this),this.ƀcy.set(o,a)),this.ƀic.positioning.direction==="horizontal"?(a.x=i,i+=a.size.x+this.ƀic.positioning.spacing):(a.y=i,i+=a.size.y+this.ƀic.positioning.spacing);}),e.forEach(s=>{this.ƀcy.get(s).destroy(),this.ƀcy.delete(s);});}};var me=class n extends d{static{h(this,"MenuUI");}static{this.ƀgd=actionsLib.Reducer.createExistenceChecker();}static{this.isAnyMenuTransitioning=this.ƀgd.notifier;}constructor(t,e){super(),this.ƀhu=new actionsLib.SingleAction,this.onCreate=this.ƀhu.notifier,this.ƀhw=new actionsLib.SingleAction,this.onOpen=this.ƀhw.notifier,this.ƀhr=new actionsLib.SingleAction,this.onClose=this.ƀhr.notifier,this.ƀbd=false;let i={closeOnBackgroundClick:true,appearAnimationDuration:150,backgroundDarkeningRatio:.3,...e};this.setAlpha(0),this.ƀp=new O(this,"alpha",{animation:b.easeInOutCubic,duration:i.appearAnimationDuration,reAnimateHandling:exports.ReAnimateHandlingType.CompletePrevious,completionHandling:exports.AnimationsCompletionHandlingType.StayInCurrentState});let s=A.createRectangle(new helpersLib.Vector(1,1),helpersLib.ColorHelper.black).toSprite({cache:true}).setAlpha(i.backgroundDarkeningRatio).setInteractive(true).displayParent(this).attach(this);this.ƀhc=et.createByName(t).setPosition(new helpersLib.Vector(0,0)).setInteractive(true).displayParent(this).attach(this),y.instance.screenSize.subscribe(o=>{s.aspectRatio=o.x/o.y,s.scale=Math.max(o.x,o.y),s.setPosition(helpersLib.Vector.zero,{holdFrom:helpersLib.Vector.half}),this.setPosition(o.multiplyNumber(.5));}).attach(this),this.ƀhu.resolve();let r=n.ƀgd.effect().attach(this);this.ƀp.animate({alpha:1}).chain(this).tap(()=>{this.ƀhw.resolve(),r.destroy(),i.closeOnBackgroundClick&&s.on(exports.ContainerEventType.Click).take(1).tap(()=>this.close()).attach(this);}).attachToRoot();}getBoundingMask(){return this.ƀhc.getBoundingMask()}close(){if(!this.ƀbd){this.ƀbd=true;let t=n.ƀgd.effect().attach(this);this.ƀp.animate({alpha:0}).chain(this).map(()=>{this.ƀhr.resolve(),t.destroy(),this.destroy();}).chainToRoot();}return this.onClose.toSingleEvent()}};var bi=class extends dt{static{h(this,"MenuEntity");}static subscribeIsOpen(){return actionsLib.ActionLib.merge(this.continuesSubscription().map(t=>t.type==="open"),actionsLib.SingleEvent.instant(this.getInstance()!==void 0))}constructor(t){super(),this.ƀic=t,queueMicrotask(()=>{if(!this.ƀhd)throw new Error("MenuEntity: MenuEntity has to have a MenuView.")});}ƀjo(t){this.ƀhd=t,this.ƀhd.onClose.subscribe(()=>this.destroy()).attach(this);}onCreate(){return this.ƀhd.onCreate.toSingleEvent()}onOpen(){return this.ƀhd.onOpen.toSingleEvent()}onClose(){return this.ƀhd.onClose.toSingleEvent()}close(){return this.ƀhd.close()}};var Pi=class extends Z{static{h(this,"MenuView");}constructor(t,e,i){super();let s=helpersLib.JsonHelper.removeUndefinedProperties({appearAnimationDuration:i.appearAnimationDuration,backgroundDarkeningRatio:i.backgroundDarkeningRatio,closeOnBackgroundClick:t.ƀic.closeOnBackgroundClick}),r=new me(e,s).displayParent(y.camera.layers.foregroundScreen).attach(this);t.ƀjo(r);let o=new actionsLib.SingleAction;r.onCreate.subscribe(()=>o.resolve(r)).attach(this),this.onCreate=o.notifier,this.onOpen=r.onOpen.notifier,this.onClose=r.onClose.notifier;}};var fo=.65,mo=.01,We=class{static{h(this,"SmoothScroller");}get scrollHeight(){return this.ƀkb}get contentSize(){return this.ƀbo.size.ceil()}constructor(t,e,i,s){this.ƀbo=t,this.ƀw=e,this.ƀie=i,this.ƀku=s,this.ƀga=false,this.ƀkb=e-i*2,this.ƀbo.y=i,this.ƀlp=i;}onWheel(t){this.setTarget(this.ƀlp-t*fo);}scrollToTop(){this.setTarget(1/0);}scrollToBottom(){this.setTarget(-1/0);}setTarget(t){this.ƀlp=helpersLib.NumberHelper.clamp(t,this.ƀw-this.ƀie-this.contentSize.y,this.ƀie);}jumpToTarget(){this.ƀbo.y=this.ƀlp;}update(t){let e=this.contentSize;if(e.y<=this.ƀkb){switch(this.ƀku){case "start":this.ƀlp=this.ƀie;break;case "center":this.ƀlp=(this.ƀw-e.y)*.5;break;case "end":this.ƀlp=this.ƀw-e.y-this.ƀie;break;default:{this.ƀku;throw new Error}}this.ƀga||(this.ƀbo.y=this.ƀlp);}this.ƀga=true;let i=this.ƀlp-this.ƀbo.y;this.ƀbo.y=this.ƀbo.y+i*mo*t;}};var go=15,Si=class extends d{static{h(this,"ScrollAreaUI");}get contentAreaSize(){return this.ƀbp}get contentSize(){return this.ƀkc.contentSize}constructor(t,e={}){super();let i={padding:go,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 s=new d().displayParent(this).attach(this);new Ot(s,t,i.padding).attach(this);let r=new W__namespace.Graphics;r.rect(0,0,t.x,t.y).fill({color:0,alpha:1e-9}),s.ƀiv.addChild(r);let o=new d().displayParent(s).attach(this);this.ƀkc=new We(o,t.y,i.padding,i.smallContentAlign),this.ƀbp=new helpersLib.Vector(t.x,this.ƀkc.scrollHeight),r.eventMode="dynamic",r.addEventListener("wheel",a=>{this.ƀkc.onWheel(a.deltaY);}),o.setInteractive(true),o.ƀiv.addEventListener("wheel",a=>{this.ƀkc.onWheel(a.deltaY);}),w.afterSceneUpdateAction.subscribe(a=>this.ƀkc.update(a.delta)).attach(this),this.addChildTo=o;}scrollToTop(t){this.ƀkc.scrollToTop(),t?.instant&&this.ƀkc.jumpToTarget();}scrollToBottom(t){this.ƀkc.scrollToBottom(),t?.instant&&this.ƀkc.jumpToTarget();}};var Ti=class extends d{static{h(this,"LayoutContainer");}constructor(t={}){super(new components.LayoutContainer),this.ƀiv.layout={isLeaf:false,...t};}setLayout(t){return this.ƀiv.layout=t,this}debug(){return this.ƀiv.layout={debug:true},this}debugBackground(){return this.ƀiv.layout={backgroundColor:"#3080FF"},this}};var xo=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},N=class extends dt{static{h(this,"CameraEntity");}constructor(){super(...arguments),this.position=new actionsLib.Variable(helpersLib.Vector.zero),this.offset=new actionsLib.Variable(helpersLib.Vector.zero),this.targetPosition=new actionsLib.Variable(void 0),this.focusingNewTargetInfo=new actionsLib.Variable(void 0);}};N=xo([It()],N);var vo=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},bo=1500,ke=class{static{h(this,"CameraService");}createCamera(){return new N().attachToRoot()}getCameraPosition(){let t=N.getInstanceOrFail();return helpersLib.Vector.fromTo(t.offset.value,t.position.value)}setPosition(t){let e=N.getInstanceOrFail();e.targetPosition.value=t;}setTransition(t){let e=N.getInstanceOrFail();e.focusingNewTargetInfo.value={time:y.time,duration:t?.duration??bo,position:e.position.value,roundPosition:t?.roundPosition??false,roundPositionThreshold:t?.roundPositionThreshold??0,focusingAnimation:t?.animation??exports.FocusingAnimation.Instant};}update(t,e){let i=N.getInstanceOrFail(),s=i.targetPosition.value;s&&(i.focusingNewTargetInfo.value?this.ƀgh(i,s,t):i.position.value=s);}ƀgh(t,e,i){let s=t.focusingNewTargetInfo.value;if(s.focusingAnimation===exports.FocusingAnimation.Instant)this.ƀbi(t,e);else {let r=(i-s.time)/s.duration;if(r>=1)this.ƀbi(t,e);else {let o;s.focusingAnimation===exports.FocusingAnimation.EaseInOut?o=U.easeInOut(r):s.focusingAnimation===exports.FocusingAnimation.EaseOut?o=U.easeOut(r):o=1;let a=s.position.lerp(e,o);s.roundPosition&&(Math.abs(a.x-s.position.x)>=s.roundPositionThreshold&&(a=new helpersLib.Vector(Math.round(a.x),a.y)),Math.abs(a.y-s.position.y)>=s.roundPositionThreshold&&(a=new helpersLib.Vector(a.x,Math.round(a.y)))),t.position.value=a;}}}ƀbi(t,e){t.position.value=e,t.focusingNewTargetInfo.value=void 0;}};ke=vo([u()],ke);var Po=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},So=function(n,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,t)},Ri=class{static{h(this,"CameraController");}constructor(t){this.ƀav=t;}createCamera(){return this.ƀav.createCamera().id}update(t,e){this.ƀav.update(t,e);}setPosition(t){this.ƀav.setPosition(t);}setTransition(t){this.ƀav.setTransition(t);}getCameraPosition(){return this.ƀav.getCameraPosition()}};Ri=Po([lt(exports.CameraGateway),So("design:paramtypes",[ke])],Ri);var ze=class{static{h(this,"PositionConversionHelper");}static includeScaleInScreenPosition(t,e,i){if(e!==1){let s=helpersLib.Vector.fromTo(i,t).multiplyNumber(1/e);return i.add(s)}else return t}};var Eo=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},Ro=function(n,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,t)},Gt=class extends Z{static{h(this,"CameraView");}constructor(t){super(),this.ƀdi=t,this.ƀld=(()=>{let e=new d().attach(this);return e.ƀiv=y.instance.ƀiu.stage,e})(),this.ƀjw=new d().setAlpha(0).displayParent(this.ƀld).attach(this),this.ƀag=A.createRectangle(new helpersLib.Vector(1,1),helpersLib.ColorHelper.black).toSprite({cache:true}).setAlpha(0).displayParent(this.ƀld).attach(this),this.ƀad=new d().displayParent(this.ƀjw).attach(this),this.ƀau=new d().displayParent(this.ƀjw).attach(this),this.ƀdv=new d().setSortableChildren(true).displayParent(this.ƀjw).attach(this),this.ƀat=new d().setSortableChildren(true).displayParent(this.ƀau).attach(this),this.ƀdu=new d().setSortableChildren(true).setRenderGroup().setZIndex(20).displayParent(this.ƀat).attach(this),this.ƀgu=new d().setSortableChildren(true).setRenderGroup().setZIndex(10).displayParent(this.ƀat).attach(this),this.ƀac=new d().setRenderGroup().setZIndex(0).displayParent(this.ƀat).attach(this),this.ƀh=new O(this.ƀjw,"alpha",{duration:500,animation:b.easeInOutCubic,reAnimateHandling:exports.ReAnimateHandlingType.CompletePrevious,completionHandling:exports.AnimationsCompletionHandlingType.StayInCurrentState}),this.ƀah=new O(this.ƀag,"alpha",{duration:500,animation:b.easeInOutCubic,reAnimateHandling:exports.ReAnimateHandlingType.CompletePrevious,completionHandling:exports.AnimationsCompletionHandlingType.StayInCurrentState}),y.instance.screenSize.subscribe(e=>{this.ƀag.aspectRatio=e.x/e.y,this.ƀag.scale=Math.max(e.x,e.y),this.ƀag.setPosition(helpersLib.Vector.zero,{holdFrom:helpersLib.Vector.zero});}).attach(this),this.ƀdi.position.subscribe(e=>{this.ƀat.position=this.ƀbv(e);}).attach(this),this.ƀdi.offset.subscribe(e=>{this.ƀau.position=e;}).attach(this),this.ƀah.set({alpha:0}),this.ƀh.set({alpha:0});}screenPositonToStagePosition(t){let e=ze.includeScaleInScreenPosition(t,this.ƀld.scale,y.instance.screenSizeCenter.value);return new helpersLib.Vector(e.x-this.ƀat.position.x-this.ƀau.position.x,e.y-this.ƀat.position.y-this.ƀau.position.y)}getLayers(){return {backgroundScreen:this.ƀad.id,background:this.ƀac.id,main:this.ƀgu.id,foreground:this.ƀdu.id,foregroundScreen:this.ƀdv.id}}appear(t,e,i){switch(e){case "alpha":return this.ƀah.set({alpha:0}),this.ƀh.set({alpha:t?0:1}),actionsLib.SingleEvent.instant().async(()=>i>0&&w.wait(i),"tap").async(()=>this.ƀh.animate({alpha:t?1:0})).chain(this);case "pureBlack":return this.ƀh.set({alpha:1}),this.ƀah.set({alpha:t?1:0}),actionsLib.SingleEvent.instant().async(()=>i>0&&w.wait(i),"tap").async(()=>this.ƀah.animate({alpha:t?0:1})).chain(this);case "instant":return this.ƀh.set({alpha:t?1:0}),this.ƀah.set({alpha:t?0:1}),actionsLib.SingleEvent.instant();default:{throw new Error}}}ƀbv(t){return helpersLib.Vector.fromTo(t,y.instance.screenSizeCenter.value)}};Gt=Eo([oi({entity:N}),Ro("design:paramtypes",[N])],Gt);var Co=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},Ci=class{static{h(this,"CameraViewController");}getLayers(){let t=N.getInstanceOrFail().id;return Gt.getInstanceOrFail(t).getLayers()}appear(t,e,i){let s=N.getInstanceOrFail().id;return Gt.getInstanceOrFail(s).appear(t,e,i)}screenPositonToStagePosition(t){let e=N.getInstanceOrFail().id;return Gt.getInstanceOrFail(e).screenPositonToStagePosition(t)}};Ci=Co([lt(Bt)],Ci);var Ao=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},Oo=function(n,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,t)};exports.KeyboardService=class Ai{static{h(this,"KeyboardService");}constructor(){this.ƀgj=new actionsLib.Action,this.keyPressed=this.ƀgj.notifier,this.ƀgk=new actionsLib.Action,this.keyReleased=this.ƀgk.notifier,this.ƀgq=new Set,this.ƀgp=new Set,window.addEventListener("keydown",t=>{this.ƀgq.add(t.code),this.ƀgp.add(t.code),!t.repeat&&this.ƀgj.trigger({key:t.key,code:t.code});}),window.addEventListener("keyup",t=>{this.ƀgq.delete(t.code),this.ƀgk.trigger({key:t.key,code:t.code});}),window.addEventListener("blur",()=>{this.ƀgq.clear();}),w.afterSceneUpdateAction.subscribe(()=>this.ƀgp.clear()).attachToRoot();}isKeyDown(t,e){return (e?.onlyPressedThisFrame?this.ƀgp:this.ƀgq).has(t)}};exports.KeyboardService=Ao([u(),Oo("design:paramtypes",[])],exports.KeyboardService);var Mo=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},Do=function(n,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,t)};exports.MouseService=class we{static{h(this,"MouseService");}constructor(){this.ƀfz=new actionsLib.Variable(false),this.initialMouseMovementHappened=this.ƀfz.notifier,this.ƀle=new actionsLib.Variable(helpersLib.Vector.zero,{notifyOnChange:true}),this.stagePosition=this.ƀle.notifier,this.ƀjy=new actionsLib.Variable(helpersLib.Vector.zero,{notifyOnChange:true}),this.screenPosition=this.ƀjy.notifier,this.ƀgt=new actionsLib.Variable(false),this.mainButtonState=this.ƀgt.notifier,this.ƀkd=new actionsLib.Variable(false),this.secondaryButtonState=this.ƀkd.notifier,this.ƀlg(),window.addEventListener("pointerdown",t=>{t.button===0?this.ƀgt.value=true:t.button===2&&(this.ƀkd.value=true);},{capture:true}),window.addEventListener("pointerup",t=>{t.button===0?this.ƀgt.value=false:t.button===2&&(this.ƀkd.value=false);},{capture:true}),window.addEventListener("blur",()=>{this.ƀgt.value=false,this.ƀkd.value=false;},{capture:true});}ƀlg(){let t=helpersLib.Vector.zero;window.addEventListener("pointermove",e=>{t=new helpersLib.Vector(e.clientX,e.clientY),this.ƀfz.value=true;},{capture:true}),w.beforeSceneUpdateAction.subscribe(()=>{this.ƀjy.value=this.ƀbc(t);}).attachToRoot(),w.afterSceneUpdateAction.subscribe(()=>{this.ƀle.value=y.camera.screenPositonToStagePosition(this.ƀjy.value);}).attachToRoot();}ƀbc(t){let i=y.instance.renderer.canvas.getBoundingClientRect(),s=i.width,r=i.height;if(s<=0||r<=0)return helpersLib.Vector.zero;let o=y.instance.renderer.screen,a=(t.x-i.left)/s*o.width,l=(t.y-i.top)/r*o.height;return a=helpersLib.NumberHelper.clamp(a,0,o.width),l=helpersLib.NumberHelper.clamp(l,0,o.height),new helpersLib.Vector(a,l)}};exports.MouseService=Mo([u(),Do("design:paramtypes",[])],exports.MouseService);var Bo=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},Go=function(n,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,t)};exports.MouseTargetFocusService=class Oi{static{h(this,"MouseTargetFocusService");}get focusedInLastFrame(){return this.ƀdt}get lastFocusedPosition(){return this.ƀgm}constructor(t){this.ƀhi=t,this.ƀhy=new actionsLib.Action,this.onTargetFocus=this.ƀhy.notifier,this.ƀma=0,this.ƀmb=false,this.ƀdt=false,this.ƀgm=void 0,w.beforeSceneUpdateAction.subscribe(e=>this.ƀme(e.delta)).attachToRoot();}ƀme(t){if(this.ƀhj){let e=this.ƀeu(this.ƀhi.stagePosition.value,this.ƀhj);this.ƀij===void 0?this.ƀij=e:this.ƀay(e,t);}this.ƀhj=this.ƀhi.stagePosition.value;}ƀay(t,e){this.ƀij-t>10?(this.ƀma=Math.max(250,this.ƀma),this.ƀmb=true):this.ƀma>1e3&&(this.ƀmb=true);let i=this.ƀma>=300&&this.ƀmb;this.ƀgi(i,t,e);}ƀgi(t,e,i){(t||e>this.ƀij)&&(this.ƀij=e),t?(this.ƀmb=false,this.ƀma=0,this.ƀdt=true,this.ƀgm=this.ƀhi.stagePosition.value,this.ƀhy.trigger(this.ƀgm)):(this.ƀma+=i,this.ƀdt=false);}ƀeu(t,e){let i=helpersLib.Vector.fromTo(t,e);return Math.abs(i.x)+Math.abs(i.y)}};exports.MouseTargetFocusService=Bo([u(),Go("design:paramtypes",[exports.MouseService])],exports.MouseTargetFocusService);var Mi=10.8,Di=10.01;exports.PhysicsShapeType=void 0;(function(n){n[n.Point=1]="Point",n[n.Circle=2]="Circle",n[n.Polygon=3]="Polygon",n[n.Rectangle=4]="Rectangle";})(exports.PhysicsShapeType||(exports.PhysicsShapeType={}));var m=class n{static{h(this,"P2JSHelper");}static aabbToBoundingBox(t){return helpersLib.Rectangle.fromRect({topLeft:{x:t.lowerBound[0],y:t.lowerBound[1]},bottomRight:{x:t.upperBound[0],y:t.upperBound[1]}})}static arrayToVector(t){return new helpersLib.Vector(t[0],t[1])}static vectorToArray(t){return [t.x,t.y]}static arePhysicsGroupsCollidable(t,e,i,s){return (t&s)!==0&&(i&e)!==0}static canCollideWith(t,e){return t.shapes.some(i=>e.shapes.some(s=>n.arePhysicsGroupsCollidable(i.collisionGroup,i.collisionMask,s.collisionGroup,s.collisionMask)))}static cloneP2Body(t){let e=new X__default.default.Body({position:t.position,angle:t.angle,type:t.type});return e.shapes=t.shapes,e}};var xt="border";var Ho=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r};exports.PhysicsGateway=class xe extends ht(){static{h(this,"PhysicsGateway");}};exports.PhysicsGateway=Ho([u()],exports.PhysicsGateway);var jo=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},vt=class extends ht(){static{h(this,"PhysicsInternalGateway");}};vt=jo([u()],vt);var S=class n extends Q{static{h(this,"PhysicsEntity");}static{this.ƀid=new Map;}static{this.ƀin=new Map;}static getFromP2BodyID(t){return n.ƀid.get(t)}static getFromP2BodyIDOrFail(t){let e=n.ƀid.get(t);if(!e)throw new Error(`PhysicsEntity with p2BodyID ${t} not found`);return e}static getPhysicsInstanceOrFail(t){let e=n.ƀin.get(t);if(!e)throw new Error(`PhysicsEntity with id ${t} not found`);return e}static getPhysicsEntities(){return Array.from(n.ƀin.values())}get area(){return this.ƀv}get mass(){return this.ƀgx}get collisions(){return this.ƀbe}constructor(t,e,i){super(),this.ƀhs=new actionsLib.Action,this.onCollision=this.ƀhs.notifier,this.type="dynamic",this.ƀv=0,this.ƀgx=0,this.ƀbe=[],this.physicsWorldID=t,this.ƀip=E.get(vt);let s=this.ƀip.getMaterial(this.physicsWorldID,e.shapeDefinition.materialName),r=this.ƀip.getMaterialDefinition(this.physicsWorldID,e.shapeDefinition.materialName);if(this.type=i,this.physicsBodyGroup=e.shapeDefinition.group,this.includeInPathfinding=e.includeOnPathfinding,this.ƀio=this.ƀip.getGroupConstant(this.physicsWorldID,this.physicsBodyGroup),this.ƀiq=this.ƀip.getMaskConstant(this.physicsWorldID,this.physicsBodyGroup),this.p2Body=this.ƀip.createBody(this.physicsWorldID,e,s,r,this.type),this.ƀv=this.p2Body.getArea(),this.ƀgx=this.p2Body.mass,this.p2Body.position=m.vectorToArray(e.position),this.p2Body.angle=e.rotation.value,!this.ƀip.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!");n.ƀid.set(this.p2Body.id,this),n.ƀin.set(this.id,this);}destroy(){this.destroyed||(super.destroy(),this.ƀip.removeBody(this.physicsWorldID,this.p2Body),n.ƀid.delete(this.p2Body.id),n.ƀin.delete(this.id));}canCollideWith(t){return m.arePhysicsGroupsCollidable(this.ƀio,this.ƀiq,t.ƀio,t.ƀiq)}ƀkf(t){this.ƀbe=t,t.length>0&&this.ƀhs.trigger(t);}};var ve=class extends S{static{h(this,"ImmovablePhysicsEntity");}constructor(t,e){super(t,e,"static"),this.position=m.arrayToVector(this.p2Body.position),this.rotation=new helpersLib.Radian(this.p2Body.angle);}convertToDTO(){return {entityID:this.id,classID:this.classID,position:this.position,rotation:this.rotation,velocity:helpersLib.Vector.zero,rotationalSpeed:0}}};var Bi=class extends Q{static{h(this,"MovableEntity");}constructor(){super(),this.position=new actionsLib.Variable(helpersLib.Vector.zero),this.rotation=new actionsLib.Variable(helpersLib.Radian.get0),this.velocity=new actionsLib.Variable(helpersLib.Vector.zero),this.rotationalSpeed=new actionsLib.Variable(0),w.beforeSceneUpdateAction.subscribe(({time:t,delta:e})=>{this.ƀlk(t,e);}).attach(this);}ƀlk(t,e){this.position.value=this.position.value.add(this.velocity.value.multiplyNumber(e)),this.rotation.value=new helpersLib.Radian(this.rotation.value.value+this.rotationalSpeed.value*e);}};var Gi=class extends S{static{h(this,"MovablePhysicsEntity");}constructor(t,e){super(t,e,"dynamic"),this.position=new actionsLib.Variable(helpersLib.Vector.zero),this.rotation=new actionsLib.Variable(helpersLib.Radian.get0),this.velocity=new actionsLib.Variable(helpersLib.Vector.zero),this.rotationalSpeed=new actionsLib.Variable(0),this.ƀfs=false,this.ƀft=false,this.ƀfv=false,this.ƀfu=false,this.ƀik(),this.ƀgr(),E.get(vt).subscribeToPhysicsStep(t,({time:i,delta:s})=>this.ƀlk(i,s)).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}}ƀlk(t,e){this.ƀfs=true,this.ƀft=true,this.ƀfv=true,this.ƀfu=true,this.ƀik();}ƀik(){this.position.value=m.arrayToVector(this.p2Body.position),this.rotation.value=new helpersLib.Radian(this.p2Body.angle),this.velocity.value=m.arrayToVector(this.p2Body.velocity),this.rotationalSpeed.value=this.p2Body.angularVelocity;}ƀgr(){this.position.subscribe(t=>{this.ƀfs?this.ƀfs=false:this.p2Body.position=[t.x,t.y];}).attach(this),this.rotation.subscribe(t=>{this.ƀft?this.ƀft=false:this.p2Body.angle=t.value;}).attach(this),this.velocity.subscribe(t=>{this.ƀfv?this.ƀfv=false:this.p2Body.velocity=[t.x,t.y];}).attach(this),this.rotationalSpeed.subscribe(t=>{this.ƀfu?this.ƀfu=false:this.p2Body.angularVelocity=t;}).attach(this);}};var ko=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},zo=function(n,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,t)},P=class extends Q{static{h(this,"PhysicsWorldEntity");}constructor(t,e,i,s,r,o,a){super(),this.materialDefinitions=new Map,this.physicsBodyGroupToP2Group=new Map,this.physicsBodyGroupToP2Mask=new Map,this.availabilityGridCache=new Map,this.vectorFieldCache=new Map,this.bodiesInContactWith=new Map,this.collisionReports=new Map,this.paused=new actionsLib.Variable(false),this.lastP2Time=new actionsLib.Variable(0),this.onPhysicsStep=new actionsLib.Action,this.mapSize=t,this.mapSizeCenter=this.mapSize.multiplyNumber(.5),this.modifyUpdateCycle=e,this.p2World=i,this.materials=s,this.materialDefinitions=r,this.physicsBodyGroupToP2Group=o,this.physicsBodyGroupToP2Mask=a;}};P=ko([It(),zo("design:paramtypes",[helpersLib.Vector,Boolean,X__default.default.World,Map,Map,Map,Map])],P);var Ko=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},st=class{static{h(this,"PhysicsBodyGroupService");}createBodyGroupsAndMasks(t,e){let i=new Map,s=new Map;return t.map((r,o)=>{if(o>31)return console.error("Cannot have more than 32 physics body groups"),{};i.set(r,1<<o),s.set(r,0);}),e.map(([r,o])=>{if(!i.has(r))throw new Error(`Physics body group "${r}" not found`);if(!i.has(o))throw new Error(`Physics body group "${o}" not found`);let a=s.get(r),l=s.get(o),c=i.get(r),p=i.get(o);s.set(r,a|p),s.set(o,l|c);}),{physicsBodyGroupToP2Group:i,physicsBodyGroupToP2Mask:s}}getGroupConstant(t,e){return P.getInstanceByIDOrFail(t).physicsBodyGroupToP2Group.get(e)}getMaskConstant(t,e){return P.getInstanceByIDOrFail(t).physicsBodyGroupToP2Mask.get(e)}canCollide(t,e,i){let s=t.physicsBodyGroupToP2Group.get(e),r=t.physicsBodyGroupToP2Mask.get(e),o=t.physicsBodyGroupToP2Group.get(i),a=t.physicsBodyGroupToP2Mask.get(i);return (r&o)!==0&&(a&s)!==0}};st=Ko([u()],st);var Zo=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},Qo=function(n,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,t)},Xe=class{static{h(this,"AvailabilityGridCacheService");}constructor(t){this.ƀim=t;}getCollidableGrids(t,e){let i=[];return t.availabilityGridCache.forEach((s,r)=>{s.forEach((o,a)=>{this.ƀim.canCollide(t,a,e)&&i.push({grid:o,cellSize:r});});}),i}get(t,e,i){return t.availabilityGridCache.get(e)?.get(i)}set(t,e,i,s){let r=t.availabilityGridCache.get(e);r||(r=new Map,t.availabilityGridCache.set(e,r)),r.set(i,s);}clear(t){t.availabilityGridCache.clear();}};Xe=Zo([u(),Qo("design:paramtypes",[st])],Xe);var qo=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},tn=function(n,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,t)},bt=class{static{h(this,"AvailabilityGridService");}constructor(t,e){this.ƀim=t,this.ƀaa=e;}onBodyAdded(t,e,i){e.aabbNeedsUpdate=true,e.updateAABB();let s=m.aabbToBoundingBox(e.aabb);this.ƀaa.getCollidableGrids(t,i).forEach(r=>{let o=_.areaToGridArea(s,r.cellSize);r.grid.setArea(o,false);});}findClosestAvailableSpace(t,e,i,s=50){return e.aabbNeedsUpdate=true,e.updateAABB(),ne.findByConvertingGridSpace(this.getAvilabilityGrid(t,s,i),m.aabbToBoundingBox(e.aabb),s)}getAvilabilityGrid(t,e,i){let s=this.ƀaa.get(t,e,i);return s||(s=this.ƀcd(t,e,i),this.ƀaa.set(t,e,i,s)),s}ƀcd(t,e,i){let s=new helpersLib.Grid({size:new helpersLib.Vector(Math.floor(t.mapSize.x/e),Math.floor(t.mapSize.y/e)),defaultValue:true});return t.p2World.bodies.forEach(r=>{let o=S.getFromP2BodyIDOrFail(r.id);if(o.includeInPathfinding&&this.ƀim.canCollide(t,o.physicsBodyGroup,i)){let a=this.ƀek(r,e);s.setArea(a,false);}}),s}ƀek(t,e){let i=m.aabbToBoundingBox(t.aabb);return _.areaToGridArea(i,e)}};bt=qo([u(),tn("design:paramtypes",[st,Xe])],bt);var sn=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},on=function(n,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,t)},Kt=class{static{h(this,"PathFinderService");}constructor(t){this.ƀil=t;}findPathAStar(t,e,i,s,r){r||(r={}),r.neighborType===void 0&&(r.neighborType="orthogonal"),r.gridCellSize===void 0&&(r.gridCellSize=50);let o=P.getInstanceByIDOrFail(t),a,l;helpersLib.Comparator.isNumber(i)?(l=S.getPhysicsInstanceOrFail(i).p2Body,a=m.arrayToVector(l.position)):a=i;let c=_.positionToGridPosition(e,r.gridCellSize),p=_.positionToGridPosition(a,r.gridCellSize),f=this.ƀil.getAvilabilityGrid(o,r.gridCellSize,s);if(l){let v=m.aabbToBoundingBox(l.aabb),x=_.areaToGridArea(v,r.gridCellSize);f.setArea(x,true);}let g=ae.findPath(f,c,p,r.neighborType);return g.path=g.path.map(v=>_.gridPositionToPosition(v,r.gridCellSize)),g}findPathDirection(t,e,i,s,r=50){let o=P.getInstanceByIDOrFail(t),a;if(helpersLib.Comparator.isNumber(i)){let g=S.getPhysicsInstanceOrFail(i);a=m.aabbToBoundingBox(g.p2Body.aabb);}else a=new helpersLib.Rectangle(i,i);let l=_.areaToGridArea(a,r),c=JSON.stringify({targetGridArea:l,collidableWithGroup:s}),p=o.vectorFieldCache.get(c);if(!p){let g=this.ƀil.getAvilabilityGrid(o,r,s);p=new he(l,g),o.vectorFieldCache.set(c,p);}let f=_.positionToGridPosition(e,r);return p.getDirectionToTarget(f)}};Kt=sn([u(),on("design:paramtypes",[bt])],Kt);var an=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},hn=function(n,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,t)},nt=class{static{h(this,"TestVisualsService");}constructor(t,e){this.ƀab=t,this.ƀif=e;}printPathfindingTestGrid(t,e,i,s,r,o){let a=P.getInstanceByIDOrFail(t);this.ƀab.getAvilabilityGrid(a,o,s).map((c,p)=>({position:_.gridPositionToPosition(p,o),availability:c})).forEach(c=>{if(c.position.isInsideRectangle(r)){let p=this.ƀif.findPathDirection(t,c.position,i,s),f;p===void 0?f=A.createRectangleBorders(new helpersLib.Vector(8,8),2,helpersLib.ColorHelper.red).toSprite().displayParent(e).setPosition(c.position,{round:false}).attach(a):f=A.createArrow(25,c.availability?helpersLib.ColorHelper.green:helpersLib.ColorHelper.red).toSprite().displayParent(e).setPosition(c.position,{round:false}).setRotation(p).attach(a),new O(f,"alpha",{duration:1e3,animation:b.easeIn}).animate({alpha:0}).tap(()=>f.destroy()).attach(f);}});}createExplosionDebugVisual(t,e,i,s,r,o=300){let a=new d().displayParent(e).setAlpha(.5).attach(t);A.createCircle(r,helpersLib.ColorHelper.blue).toSprite().displayParent(a).setPosition(s,{round:false}).setAlpha(.5).attach(t),i.forEach(c=>{let p=c.hits.length>0?helpersLib.ColorHelper.red:helpersLib.ColorHelper.white;A.createVector(s,c.line.to,p).toSprite().displayParent(a).attach(t);}),new O(a,"alpha",{duration:o,animation:b.easeIn}).animate({alpha:0}).tap(()=>a.destroy()).attach(a);}createElipticExplosionDebugVisual(t,e,i,s,r,o,a=300){let l=new d().displayParent(e).setAlpha(.5).attach(t);A.createElipse(o,helpersLib.ColorHelper.blue).toSprite().displayParent(l).setPosition(s,{round:false}).setRotation(r).setAlpha(.5).attach(t),i.forEach(p=>{let f=p.hits.length>0?helpersLib.ColorHelper.red:helpersLib.ColorHelper.white;A.createVector(p.line.from,p.line.to,f).toSprite().displayParent(l).attach(t);}),new O(l,"alpha",{duration:a,animation:b.easeIn}).animate({alpha:0}).tap(()=>l.destroy()).attach(l);}createPhysicsEntityShapeVisual(t,e,i){let s=i?.overridePosition??m.arrayToVector(t.position),r=i?.overrideRotation??new helpersLib.Radian(t.angle),o=i?.color??helpersLib.ColorHelper.blue,a=new d().displayParent(e).setPosition(s,{round:false}).setRotation(r).setAlpha(.5).attachToRoot();t.shapes.forEach(c=>{this.ƀda(c,o).displayParent(a).attachToRoot();}),new O(a,"alpha",{duration:1e3,animation:b.easeIn}).animate({alpha:0}).tap(()=>a.destroy()).attach(a);}ƀda(t,e){switch(t.type){case X__default.default.Shape.PARTICLE:throw new Error("Not implemented");case X__default.default.Shape.LINE:throw new Error("Not implemented");case X__default.default.Shape.PLANE:throw new Error("Not implemented");case X__default.default.Shape.CIRCLE:throw new Error("Not implemented");case X__default.default.Shape.CAPSULE:throw new Error("Not implemented");case X__default.default.Shape.BOX:throw new Error("Not implemented");case X__default.default.Shape.HEIGHTFIELD:throw new Error("Not implemented");case X__default.default.Shape.CONVEX:return this.ƀcz(t,e);default:{t.type;throw new Error}}}ƀcz(t,e){let i=[t.vertices.map(s=>({x:s[0],y:s[1]}))];return A.createPolygon(i,e).toSprite()}};nt=an([u(),hn("design:paramtypes",[bt,Kt])],nt);var pn=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},un=function(n,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,t)},Ke=class{static{h(this,"HitTestService");}constructor(t){this.ƀlt=t;}hitTest(t,e){let i=t.world,s=S.getFromP2BodyIDOrFail(t.id),r=m.cloneP2Body(t);this.ƀt(r,e);let o=i.broadphase.aabbQuery(i,this.ƀdy(r)).map(l=>S.getFromP2BodyIDOrFail(l.id)).filter(l=>l.includeInPathfinding).filter(l=>s.canCollideWith(l)).map(l=>m.cloneP2Body(l.p2Body)),a=false;if(o.length!==0){let l=new X__default.default.World;l.addBody(r),o.forEach(c=>l.addBody(c)),l.step(1,1,1),a=l.narrowphase.contactEquations.some(c=>c.bodyA===r||c.bodyB===r),l.clear();}if(e?.testLayerID){let l=a?helpersLib.ColorHelper.red:helpersLib.ColorHelper.green;this.ƀlt.createPhysicsEntityShapeVisual(t,e.testLayerID,{overridePosition:e.overridePosition,overrideRotation:e.overrideRotation,color:l});}return a}ƀt(t,e){e?.overridePosition&&(t.position=m.vectorToArray(e.overridePosition)),e?.overrideRotation&&(t.angle=e.overrideRotation.value);}ƀdy(t){return t.aabbNeedsUpdate=true,t.updateAABB(),t.aabb}};Ke=pn([u(),un("design:paramtypes",[nt])],Ke);var dn=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},Ze=class{static{h(this,"CollisionsService");}registerPhysicsWorld(t){t.p2World.on("beginContact",e=>{e.contactEquations.forEach(i=>{this.ƀjn(t,i);});});}step(t,e,i){S.getPhysicsEntities().forEach(s=>{s.ƀbe=[];}),t.p2World.narrowphase.contactEquations.forEach(s=>{this.ƀjn(t,s);}),t.bodiesInContactWith.forEach((s,r)=>{this.ƀfi(s.p2Body),s.entity.ƀkf(t.collisionReports.get(r)||[]);}),t.bodiesInContactWith.clear(),t.collisionReports.clear();}ƀfi(t){let e=m.arrayToVector(t.velocity);e.length>Mi&&(e=e.normalize(Mi),t.velocity=m.vectorToArray(e)),t.angularVelocity=Math.min(Math.max(t.angularVelocity,-Di),Di);}ƀjn(t,e){let i=S.getFromP2BodyID(e.bodyA.id),s=S.getFromP2BodyID(e.bodyB.id);if(i&&s){t.bodiesInContactWith.set(e.bodyA.id,{p2Body:e.bodyA,entity:i}),t.bodiesInContactWith.set(e.bodyB.id,{p2Body:e.bodyB,entity:s});let r=t.collisionReports.get(e.bodyA.id)||[],o=t.collisionReports.get(e.bodyB.id)||[],{collisionDetailsA:a,collisionDetailsB:l}=this.ƀed(i,s,e);r.push({self:a,target:l}),o.push({self:l,target:a}),t.collisionReports.set(e.bodyA.id,r),t.collisionReports.set(e.bodyB.id,o);}else console.warn("ContactEquationOrganiser: Entity not found for contact equation",e);}ƀed(t,e,i){let s=t.convertToDTO(),r=e.convertToDTO(),o=m.arrayToVector(i.contactPointA),a=m.arrayToVector(i.contactPointB),{normalA:l,normalB:c}=this.ƀes(i);return {collisionDetailsA:this.ƀec(s,i.bodyA.mass,o,l,t.area),collisionDetailsB:this.ƀec(r,i.bodyB.mass,a,c,e.area)}}ƀec(t,e,i,s,r){let o,a=i.add(t.position);return {body:t,getPositionReletiveToObject:h(()=>(o||(o=i.rotate(t.rotation.multiply(-1).vector)),o),"getPositionReletiveToObject"),getPositionOnWorld:h(()=>(a||(a=i.add(t.position)),a),"getPositionOnWorld"),position:i,mass:e,area:r,normal:s}}ƀes(t){let e=m.arrayToVector(t.normalA),i=e.multiplyNumber(-1);return {normalA:e,normalB:i}}};Ze=dn([u()],Ze);var mn=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},yn=function(n,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,t)},Qe=class extends ve{static{h(this,"BorderEntity");}constructor(t,e){super(t,e);}};Qe=mn([It(),yn("design:paramtypes",[Number,Object])],Qe);var gn=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},Y=1e4,qe=class{static{h(this,"BorderService");}createBorders(t,e,i){this.ƀbx(t,new helpersLib.Vector(e.x/2,-Y/2),new helpersLib.Vector(e.x+Y*2,Y),i),this.ƀbx(t,new helpersLib.Vector(e.x/2,e.y+Y/2),new helpersLib.Vector(e.x+Y*2,Y),i),this.ƀbx(t,new helpersLib.Vector(-Y/2,e.y/2),new helpersLib.Vector(Y,e.y+Y*2),i),this.ƀbx(t,new helpersLib.Vector(e.x+Y/2,e.y/2),new helpersLib.Vector(Y,e.y+Y*2),i);}ƀbx(t,e,i,s){return new Qe(t,{shapeDefinition:{materialName:xt,group:s,shapeType:exports.PhysicsShapeType.Rectangle,shapeData:i},position:e,rotation:helpersLib.Radian.get0,addInEmptySpace:false,includeOnPathfinding:true}).attachByID(t)}};qe=gn([u()],qe);var xn=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},Tr=new X__default.default.Material,vn={id:xt,density:Number.MAX_SAFE_INTEGER,velocityDrag:1,rotationalDrag:1},Zt=class{static{h(this,"MaterialsService");}createMaterials(t,e,i,s){let r=new Map,o=new Map;if(i.forEach(a=>{r.set(a.id,new X__default.default.Material),o.set(a.id,a);}),r.has(xt))throw new Error(`Material with name ${xt} cannot be defined, pick another name for the material.`);return r.set(xt,Tr),o.set(xt,vn),this.ƀc(t,e,i,s,r),{materials:r,materialDefinitions:o}}getMaterial(t,e){let i=P.getInstanceByIDOrFail(t);return this.ƀer(e,i.materials)}getMaterialDefinition(t,e){let i=P.getInstanceByIDOrFail(t);return this.ƀeq(e,i.materialDefinitions)}ƀer(t,e){let i=e.get(t);if(!i)throw new Error(`Could not find material with name ${t}.`);return i}ƀeq(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,s,r){this.ƀeh(i.map(o=>o.id),s).forEach(o=>{let a=this.ƀer(o.materialA,r),l=this.ƀer(o.materialB,r);t.addContactMaterial(new X__default.default.ContactMaterial(a,l,{friction:o.friction,restitution:o.bounciness,stiffness:o.stiffness,relaxation:o.relaxation}));}),this.ƀd(t,e,i,r);}ƀeh(t,e){let i=new Map;e.forEach(r=>{let o=i.get(r.materialA);o||(o=new Map,i.set(r.materialA,o)),o.set(r.materialB,r);});let s=[];return t.forEach((r,o)=>{for(let a=o;a<t.length;a++){let l=t[a],c=i.get(r)?.get(l);c?s.push(c):s.push({materialA:r,materialB:l,friction:0,bounciness:0,relaxation:4,stiffness:1e6});}}),s}ƀd(t,e,i,s){i.forEach(r=>{let o=this.ƀer(r.id,s);t.addContactMaterial(new X__default.default.ContactMaterial(o,Tr,{friction:e.friction,restitution:e.bounciness,stiffness:e.stiffness,relaxation:e.relaxation}));});}};Zt=xn([u()],Zt);var bn=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},Pn=function(n,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,t)},Qt=class{static{h(this,"PhysicsWorldService");}constructor(t,e,i,s,r){this.ƀhb=t,this.ƀal=e,this.ƀab=i,this.ƀbf=s,this.ƀim=r;}createPhysicsWorld(t){let e=new X__default.default.World({gravity:[0,0]}),{materials:i,materialDefinitions:s}=this.ƀhb.createMaterials(e,t.borderProperties,t.materialDefinitions,t.materialContactDefinitions),{physicsBodyGroupToP2Group:r,physicsBodyGroupToP2Mask:o}=this.ƀim.createBodyGroupsAndMasks(t.physicsBodyGroups,t.interactingBodyGroups),a=new P(t.mapSize,t.modifyUpdateCycle,e,i,s,r,o).attachByID(t.attachTo);return a.onDestroy().tap(()=>{e.clear(),t.modifyUpdateCycle&&w.cleanUpdateModifier();}).attachToRoot(),this.ƀal.createBorders(a.id,t.mapSize,t.borderProperties.borderBodyGroup),this.ƀbf.registerPhysicsWorld(a),t.modifyUpdateCycle?w.registerUpdateModifier((l,c)=>this.ƀlk(a,l,c)):w.beforeSceneUpdateAction.subscribe(({time:l,delta:c})=>{this.ƀlk(a,l,c);}).attach(a),a.id}addBody(t,e,i,s,r){let o=P.getInstanceByIDOrFail(t);if(i){let a=this.ƀab.findClosestAvailableSpace(o,e,s);return a?(e.position[0]+=a.x,e.position[1]+=a.y,o.p2World.addBody(e),r&&this.ƀab.onBodyAdded(o,e,s),true):false}else return o.p2World.addBody(e),r&&this.ƀab.onBodyAdded(o,e,s),true}removeBody(t,e){P.getInstanceByID(t)?.p2World.removeBody(e);}ƀlk(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 s=e+i;this.ƀbf.step(t,s,i),t.onPhysicsStep.trigger({time:s,delta:i}),t.lastP2Time.value=t.p2World.time;}return i}setPaused(t,e){P.getInstanceByIDOrFail(e).paused.set(t);}};Qt=bn([u(),Pn("design:paramtypes",[Zt,qe,bt,Ze,st])],Qt);var Tn=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},te=class{static{h(this,"RayCastingService");}castClosest(t,e,i){let s=new X__default.default.RaycastResult,r=new X__default.default.Ray({mode:X__default.default.Ray.CLOSEST,from:m.vectorToArray(e.from),to:m.vectorToArray(e.to),collisionGroup:t.physicsBodyGroupToP2Group.get(i),collisionMask:t.physicsBodyGroupToP2Mask.get(i)});if(t.p2World.raycast(s,r),s.hasHit())return this.ƀbs(s,e)}castAllFirstContacts(t,e,i){let s=new Map,r=new X__default.default.Ray({mode:X__default.default.Ray.ALL,from:m.vectorToArray(e.from),to:m.vectorToArray(e.to),collisionGroup:t.physicsBodyGroupToP2Group.get(i),collisionMask:t.physicsBodyGroupToP2Mask.get(i),callback:h(o=>{let a=s.get(o.body);!s.has(o.body)||o.fraction<a.fraction?s.set(o.body,this.ƀbs(o,e)):o.fraction===a.fraction&&a.isExternal()&&s.set(o.body,this.ƀbs(o,e));},"callback")});return t.p2World.raycast(new X__default.default.RaycastResult,r),Array.from(s.values())}ƀbs(t,e){let i=t.fraction,s=m.arrayToVector(t.normal),r,o,a;return {body:t.body,hitPosition:h(()=>(r===void 0&&(r=e.from.lerp(e.to,i)),r),"hitPosition"),hitDistance:h(()=>(o===void 0&&(o=e.length*i),o),"hitDistance"),isExternal:h(()=>(a===void 0&&(a=e.fromTo.dotProduct(s)<0),a),"isExternal"),normal:s,fraction:i,line:e}}};te=Tn([u()],te);var En=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},Tt=class{static{h(this,"ImpactService");}applyImpulse(t,e,i,s){let r=i.normalize(s),o=[e.x-t.position[0],e.y-t.position[1]];t.applyImpulse(m.vectorToArray(r),o);}};Tt=En([u()],Tt);var Rn=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},ee=class{static{h(this,"RayCastHitConverterService");}toExplosionHits(t,e=true){let i=new Map;return t.forEach(s=>{s.hits.forEach(r=>{let o=i.get(r.body);if(o){let a=r.fraction<o.closestRaycastHit.fraction?r:o.closestRaycastHit;o.rayCastHits.push(r),i.set(r.body,{hitCount:o.hitCount+1,closestRaycastHit:a,rayCastHits:o.rayCastHits,isExternal:e?o.isExternal:o.isExternal&&r.isExternal(),explosionCenter:r.line.from});}else {let a=r.isExternal();i.set(r.body,{hitCount:1,closestRaycastHit:r,rayCastHits:[r],isExternal:a,explosionCenter:r.line.from});}});}),[...i.values()].map(s=>this.ƀbt(s,t.length))}ƀbt(t,e){let i=t.hitCount/e,s=t.rayCastHits;if(t.isExternal)return {body:S.getFromP2BodyIDOrFail(t.closestRaycastHit.body.id).convertToDTO(),p2Body:t.closestRaycastHit.body,isExternal:true,normal:t.closestRaycastHit.normal,fraction:t.closestRaycastHit.fraction,ratioOfHits:i,raycastResults:s,getHitPosition:t.closestRaycastHit.hitPosition,getHitDistance:t.closestRaycastHit.hitDistance};{let r=m.arrayToVector(t.closestRaycastHit.body.position);return {body:S.getFromP2BodyIDOrFail(t.closestRaycastHit.body.id).convertToDTO(),p2Body:t.closestRaycastHit.body,isExternal:false,normal:helpersLib.Vector.fromTo(r,t.explosionCenter).normalize(),fraction:0,ratioOfHits:i,raycastResults:s,getHitPosition:h(()=>t.explosionCenter,"getHitPosition"),getHitDistance:h(()=>0,"getHitDistance")}}}};ee=Rn([u()],ee);var Cn=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},An=function(n,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,t)},Dn=15,ei=class{static{h(this,"ElipticExplosionService");}constructor(t,e,i,s){this.ƀji=t,this.ƀlt=e,this.ƀjh=i,this.ƀfw=s;}createElipticExplosion(t,e,i,s,r,o,a){let l=P.getInstanceByIDOrFail(t),c=this.ƀci(e,i,s,r,a?.hitOnlyClosest===true,l),p=this.ƀjh.toExplosionHits(c,false);return this.ƀr(p,o),a?.testLayerID&&this.ƀlt.createElipticExplosionDebugVisual(l,a.testLayerID,c,e,i,s,a.debugRayDuration),p.map(f=>{let{p2Body:g,...v}=f;return v})}ƀci(t,e,i,s,r,o){let a=[],l=e.vector,c=e.add(helpersLib.Radian.get90).vector,p=c.normalize(i.x);a.push(new helpersLib.Line(t,t.add(p))),a.push(new helpersLib.Line(t,t.add(p.multiplyNumber(-1))));let f=l.normalize(i.y);a.push(new helpersLib.Line(t,t.add(f))),a.push(new helpersLib.Line(t,t.add(f.multiplyNumber(-1))));let g=Math.round(i.y/Dn),v=i.y/(g*2+1)*2,x=l.normalize(v),M=i.x,L=Math.pow(i.y,2);return helpersLib.ArrayHelper.createIntegerArray(g).forEach(I=>{let K=v*(I+1),_t=x.multiplyNumber(I+1),$=c.normalize(this.ƀfa(M,L,K)),H=t.add(_t);a.push(new helpersLib.Line(H,H.add($))),a.push(new helpersLib.Line(H,H.add($.multiplyNumber(-1))));let j=t.add(_t.multiplyNumber(-1));a.push(new helpersLib.Line(j,j.add($))),a.push(new helpersLib.Line(j,j.add($.multiplyNumber(-1))));}),a.map(I=>{if(r){let K=this.ƀji.castClosest(o,I,s);return {line:I,hits:K?[K]:[]}}else {let K=this.ƀji.castAllFirstContacts(o,I,s);return {line:I,hits:K}}})}ƀfa(t,e,i){return Math.sqrt(1-Math.pow(i,2)/e)*t}ƀr(t,e){t.forEach(i=>{i.raycastResults.forEach(s=>{let r,o;s.isExternal()?(r=s.line.fromTo,o=e*2):(r=s.line.fromTo.multiplyNumber(-1),o=e*(1-s.fraction)*8),this.ƀfw.applyImpulse(s.body,s.hitPosition(),r,o);});});}};ei=Cn([u(),An("design:paramtypes",[te,nt,ee,Tt])],ei);var Bn=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},Gn=function(n,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,t)},ii=class{static{h(this,"ExplosionService");}constructor(t,e,i,s){this.ƀji=t,this.ƀlt=e,this.ƀjh=i,this.ƀfw=s;}createExplosion(t,e,i,s,r,o){let a=P.getInstanceByIDOrFail(t),l=this.ƀey(i),c=this.ƀci(e,i,s,l,o?.hitOnlyClosest===true,a),p=this.ƀjh.toExplosionHits(c);return this.ƀr(e,i,r,l,p),o?.testLayerID&&this.ƀlt.createExplosionDebugVisual(a,o.testLayerID,c,e,i,o.debugRayDuration),p}ƀci(t,e,i,s,r,o){let a=new helpersLib.Radian(helpersLib.PI_360/s),l=new helpersLib.Vector(0,-e),c=a.vector;return helpersLib.ArrayHelper.createEmptyArray(s).map(()=>{let p=t.add(l);return l=l.rotate(c),new helpersLib.Line(t,p)}).map(p=>{if(r){let f=this.ƀji.castClosest(o,p,i);return {line:p,hits:f?[f]:[]}}else {let f=this.ƀji.castAllFirstContacts(o,p,i);return {line:p,hits:f}}})}ƀr(t,e,i,s,r){r.forEach(o=>{if(o.isExternal)o.raycastResults.forEach(a=>{let l=i*(1-a.fraction);this.ƀfw.applyImpulse(a.body,a.hitPosition(),a.line.fromTo,l);});else {let a=helpersLib.Vector.fromTo(t,m.arrayToVector(o.p2Body.position)),l=a.length/e,c=i*s*l/2;this.ƀfw.applyImpulse(o.p2Body,o.getHitPosition(),a,c);}});}ƀey(t){return t>100?Math.floor(t*.3):Math.floor(t*.26+4)}};ii=Bn([u(),Gn("design:paramtypes",[te,nt,ee,Tt])],ii);var Ln=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},ie=class{static{h(this,"PhysicsQueryService");}getMapSize(t){let e=P.getInstanceByIDOrFail(t);return {dimentions:e.mapSize,center:e.mapSizeCenter}}subscribeToPhysicsStep(t,e){return P.getInstanceByIDOrFail(t).onPhysicsStep.subscribe(e)}};ie=Ln([u()],ie);var Hn=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},jn=function(n,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,t)},_i=class{static{h(this,"PhysicsController");}constructor(t,e,i,s,r,o,a,l){this.ƀit=t,this.ƀif=e,this.ƀlt=i,this.ƀdm=s,this.ƀde=r,this.ƀfo=o,this.ƀis=a,this.ƀfw=l;}createPhysicsWorld(t){return this.ƀit.createPhysicsWorld(t)}getMapSize(t){return this.ƀis.getMapSize(t)}setPaused(t,e){this.ƀit.setPaused(t,e);}hitTest(t,e){let i=S.getPhysicsInstanceOrFail(t);return this.ƀfo.hitTest(i.p2Body,e)}findPath(t,e,i,s,r){return this.ƀif.findPathAStar(t,e,i,s,{neighborType:r})}findPathDirection(t,e,i,s){return this.ƀif.findPathDirection(t,e,i,s)}applyImpulse(t,e,i,s){let r=S.getPhysicsInstanceOrFail(t);this.ƀfw.applyImpulse(r.p2Body,e,i,s);}createExplosion(t,e,i,s,r,o){return this.ƀdm.createExplosion(t,e,i,s,r,o)}createElipticExplosion(t,e,i,s,r,o,a){return this.ƀde.createElipticExplosion(t,e,i,s,r,o,a)}printPathfindingTestGrid(t,e,i,s,r,o=50){this.ƀlt.printPathfindingTestGrid(t,e,i,s,r,o);}};_i=Hn([lt(exports.PhysicsGateway),jn("design:paramtypes",[Qt,Kt,nt,ii,ei,Ke,ie,Tt])],_i);var Un=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},ri=class{static{h(this,"ShapeCreationService");}createBody(t,e,i,s,r){let o=P.getInstanceByIDOrFail(t);if(!o.physicsBodyGroupToP2Group.has(e.shapeDefinition.group))throw new Error(`Physics body group "${e.shapeDefinition.group}" not found`);switch(e.shapeDefinition.shapeType){case exports.PhysicsShapeType.Point:return this.ƀbz(o,void 0,i,s,e.shapeDefinition.group,r);case exports.PhysicsShapeType.Circle:return this.ƀbz(o,e.shapeDefinition.shapeData,i,s,e.shapeDefinition.group,r);case exports.PhysicsShapeType.Polygon:return this.ƀch(o,e.shapeDefinition.shapeData,i,s,e.shapeDefinition.group,r);case exports.PhysicsShapeType.Rectangle:return this.ƀcj(o,e.shapeDefinition.shapeData,i,s,e.shapeDefinition.group,r);default:{e.shapeDefinition.shapeType;throw new Error}}}ƀbz(t,e,i,s,r,o){let a=new X__default.default.Circle({collisionGroup:t.physicsBodyGroupToP2Group.get(r),collisionMask:t.physicsBodyGroupToP2Mask.get(r),radius:e});a.material=i;let l=new X__default.default.Body({type:o==="dynamic"?X__default.default.Body.DYNAMIC:X__default.default.Body.STATIC,mass:s.density,damping:s.velocityDrag,angularDamping:s.rotationalDrag});return l.addShape(a),l}ƀch(t,e,i,s,r,o){let a=t.physicsBodyGroupToP2Group.get(r),l=t.physicsBodyGroupToP2Mask.get(r),c=e.map(g=>new X__default.default.Convex({vertices:g.map(v=>[v.x,v.y]),collisionGroup:a,collisionMask:l})).map(g=>(g.material=i,g)),p=c.reduce((g,v)=>g+v.area,0),f=new X__default.default.Body({type:o==="dynamic"?X__default.default.Body.DYNAMIC:X__default.default.Body.STATIC,mass:p,damping:s.velocityDrag,angularDamping:s.rotationalDrag});return c.forEach(g=>f.addShape(g)),f.setDensity(s.density),f}ƀcj(t,e,i,s,r,o){let a=new X__default.default.Box({width:e.x,height:e.y,collisionGroup:t.physicsBodyGroupToP2Group.get(r),collisionMask:t.physicsBodyGroupToP2Mask.get(r)});a.material=i;let l=e.x*e.y,c=new X__default.default.Body({type:o==="dynamic"?X__default.default.Body.DYNAMIC:X__default.default.Body.STATIC,mass:l,damping:s.velocityDrag,angularDamping:s.rotationalDrag});return c.addShape(a),c.setDensity(s.density),c}};ri=Un([u()],ri);var Wn=function(n,t,e,i){var s=arguments.length,r=s<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,t,e,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(t,e,r):o(t,e))||r);return s>3&&r&&Object.defineProperty(t,e,r),r},$n=function(n,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,t)},Vi=class{static{h(this,"PhysicsInternalController");}constructor(t,e,i,s,r){this.ƀit=t,this.ƀir=e,this.ƀkq=i,this.ƀis=s,this.ƀim=r;}createBody(t,e,i,s,r){return this.ƀkq.createBody(t,e,i,s,r)}getMaterial(t,e){return this.ƀir.getMaterial(t,e)}getMaterialDefinition(t,e){return this.ƀir.getMaterialDefinition(t,e)}getGroupConstant(t,e){return this.ƀim.getGroupConstant(t,e)}getMaskConstant(t,e){return this.ƀim.getMaskConstant(t,e)}addBody(t,e,i,s,r){return this.ƀit.addBody(t,e,i,s,r)}removeBody(t,e){this.ƀit.removeBody(t,e);}subscribeToPhysicsStep(t,e){return this.ƀis.subscribeToPhysicsStep(t,e)}};Vi=Wn([lt(vt),$n("design:paramtypes",[Qt,Zt,ri,ie,st])],Vi);exports.AdvancedSound=wt;exports.AnimationFlicker=Li;exports.AnimationInterpolationFunctions=U;exports.Animations=b;exports.Animator=O;exports.BORDER_MATERIAL_NAME=xt;exports.BardLegendsTestingHelper=T;exports.Camera=le;exports.ClosestAvailableSpaceHelper=ne;exports.Container=d;exports.ControllerDecorator=lt;exports.DEFAULT_SHADER_RESOLUTION=k;exports.DeltaTime=pi;exports.DisplayObjectArray=xi;exports.ElectronGame=lr;exports.Entity=Q;exports.EntityDecorator=It;exports.FadeInContent=Yi;exports.Game=y;exports.Gateway=ht;exports.Graphics=A;exports.ImmovablePhysicsEntity=ve;exports.LayoutContainer=Ti;exports.MenuEntity=bi;exports.MenuUI=me;exports.MenuView=Pi;exports.MovableEntity=Bi;exports.MovablePhysicsEntity=Gi;exports.Music=pe;exports.MusicPlayer=mi;exports.PathFinder=ae;exports.PhysicsEntity=S;exports.Placeholder=yi;exports.ROTATIONAL_SPEED_LIMIT=Di;exports.RichText=gi;exports.SOUND_TRANSITION_DURATION=rt;exports.SPEED_LIMIT=Mi;exports.Scene=Vt;exports.SceneDecorator=Nr;exports.ScrollAreaUI=Si;exports.ScrollMaskUI=Ot;exports.Service=E;exports.ServiceDecorator=u;exports.SingletonEntity=dt;exports.SlideInContent=tr;exports.SlideInContentByIndex=ci;exports.SlideStateAnimation=De;exports.Sound=ce;exports.Sprite=et;exports.StateAnimation=jt;exports.Text=de;exports.ThroughEmptyStateAnimation=Re;exports.UpdatableContainer=wi;exports.UpdateCycle=w;exports.VectorFieldPathFinder=he;exports.VectorSet=oe;exports.View=Z;exports.ViewDecorator=oi;
|