From 71a91bb555c9e80460457cfc1529777de214094d Mon Sep 17 00:00:00 2001 From: konekowo Date: Fri, 23 Aug 2024 14:31:55 +0000 Subject: [PATCH] deploy: e4b48224f96274755368bee4467954f042ad00a9 --- game.20aa157198141ec2211a.js | 1 + game.93984a73c4cedfa57435.js | 1 - index.html | 2 +- 3 files changed, 2 insertions(+), 2 deletions(-) create mode 100644 game.20aa157198141ec2211a.js delete mode 100644 game.93984a73c4cedfa57435.js diff --git a/game.20aa157198141ec2211a.js b/game.20aa157198141ec2211a.js new file mode 100644 index 00000000..c4d63bb1 --- /dev/null +++ b/game.20aa157198141ec2211a.js @@ -0,0 +1 @@ +!function(){"use strict";var e,t={65918:function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.MapAudio=t.Audio=void 0;class i{audio;timeStarted=0;source;id;isPlaying=!1;isPaused=!1;pausedTime=0;nodes=[];tempArrayL=new Float32Array(16);tempArrayR=new Float32Array(16);LeftChannel=0;RightChannel=0;_connectedToContext=!1;GetMaximumAudioLevel(){return Math.max(this.LeftChannel,this.RightChannel)}GetAverageAudioLevel(){return(this.LeftChannel+this.RightChannel)/2}Create(e){this.source=e.createBufferSource(),this.source.buffer=this.audio}AddAudioNode(e){if(!this.source)throw new Error("Source not created yet!");this.nodes.push(e)}GetNode(e){let t=this.nodes.filter((t=>t instanceof e));return t.length>0?t:null}ConnectToContext(e,t){if(!this.source)throw new Error("Source not created yet!");this._connectedToContext||(this._connectedToContext=!0,this.nodes.length>0?t?t(this.nodes,this.source):this.nodes.forEach(((t,i)=>{this.source.connect(t),t instanceof AnalyserNode||t.connect(e.destination)})):this.source.connect(e.destination))}Play(){if(!this.source)throw new Error("Source not created yet!");if(!this._connectedToContext)throw new Error("Not connected to audio context yet!");this.source.start(0,this.pausedTime),this.isPlaying=!0,this.isPaused=!1,this.timeStarted=Date.now()-this.pausedTime,this.pausedTime=0}Pause(){if(!this.source)throw new Error("Source not created yet!");if(!this._connectedToContext)throw new Error("Not connected to audio context yet!");this.pausedTime=Date.now()-this.timeStarted,this.source.stop(0),this.isPaused=!0,this.isPlaying=!1}Stop(){if(!this.source)throw new Error("Source not created yet!");if(!this._connectedToContext)throw new Error("Not connected to audio context yet!");this.source.stop(0),this.isPlaying=!1}RegisterEndCallBack(e){if(!this.source)throw new Error("Source not created yet!");this.source.onended=()=>{this.isPaused||e()}}}t.Audio=i;t.MapAudio=class extends i{beatmap;fadingOut=!1;fadeOutTimeout;playingCallback}},85437:function(e,t,i){Object.defineProperty(t,"__esModule",{value:!0}),t.AudioEngine=void 0;const n=i(14981),s=i(65918),a=i(20825);t.AudioEngine=class{audioContext;_playingAudios;_musicQueue=[];_audioIdTicker=0;_changeCallbacks=[];constructor(){this.audioContext=new AudioContext,this._playingAudios=new n.PlayingAudios,a.Main.app.ticker.add((()=>{this.update()}))}UpdateMusicQueue(){this._musicQueue[0]&&(this._musicQueue[0].fadingOut||0!=this._musicQueue[0].timeStarted||(this._play(this._musicQueue[0]),this._changeCallbacks.forEach((e=>e()))),this._musicQueue[0].fadingOut&&this._musicQueue[1]&&this._musicQueue[1]&&(this._play(this._musicQueue[1]),this._changeCallbacks.forEach((e=>e()))))}addMusicChangeEventListener(e){this._changeCallbacks.push(e)}removeMusicChangeEventListener(e){this._changeCallbacks=this._changeCallbacks.filter((t=>t!=e))}GetCurrentPlayingMusic(){return this._musicQueue[0]}PlayEffect(e,t){let i=new s.Audio;i.audio=e,i.id=this._audioIdTicker,this._play(i,t),this._audioIdTicker++}AddToMusicQueue(e,t,i){let n=new s.MapAudio;return n.audio=e,n.beatmap=t,n.id=this._audioIdTicker,i&&(n.playingCallback=i),this._musicQueue.push(n),this._audioIdTicker++,this.UpdateMusicQueue(),n.id}PlayMusicImmediately(e,t,i){this._musicQueue=[],this.AddToMusicQueue(e,t,i)}update(){let e=this.GetCurrentPlayingMusic();if(e){let t=e.GetNode(AnalyserNode)[1],i=e.GetNode(AnalyserNode)[2];t.getFloatFrequencyData(e.tempArrayL),i.getFloatFrequencyData(e.tempArrayR);let n=0;e.tempArrayL.forEach((e=>{n+=e}));let s=n/=e.tempArrayL.length,a=0;e.tempArrayR.forEach((e=>{a+=e}));let o=a/=e.tempArrayL.length;e.LeftChannel=(s+140)/140,e.RightChannel=(o+140)/140}}_play(e,t){if(e.Create(this.audioContext),"beatmap"in e&&e.beatmap){this._playingAudios.audios.forEach((e=>{if("beatmap"in e&&e.beatmap){clearTimeout(e.fadeOutTimeout),e.fadingOut=!0;let t=e.GetNode(GainNode);if(null==t)throw new Error("Gain Node doesn't exist on Audio Object!");t[0].gain.linearRampToValueAtTime(0,this.audioContext.currentTime+.4),setTimeout((()=>{e.Stop()}),400)}}));let t=this.audioContext.createGain();t.gain.value=0;let i=this.audioContext.createAnalyser();i.fftSize=512,i.smoothingTimeConstant=0;let n=this.audioContext.createChannelSplitter(2),s=this.audioContext.createAnalyser();s.smoothingTimeConstant=0,s.fftSize=32;let a=this.audioContext.createAnalyser();a.smoothingTimeConstant=0,a.fftSize=32,e.AddAudioNode(t),e.AddAudioNode(i),e.AddAudioNode(s),e.AddAudioNode(a),e.ConnectToContext(this.audioContext,((e,o)=>{o.connect(t),t.connect(this.audioContext.destination),o.connect(i),o.connect(n),n.connect(s,0),n.connect(a,1)})),e.Play(),this._playingAudios.audios.push(e),e.playingCallback&&e.playingCallback(),t.gain.linearRampToValueAtTime(1,this.audioContext.currentTime+.4),e.fadeOutTimeout=setTimeout((()=>{t.gain.linearRampToValueAtTime(0,this.audioContext.currentTime+.4)}),1e3*(e.audio.duration-.4))}else e.ConnectToContext(this.audioContext),t&&e.source&&(e.source.playbackRate.value=t),e.Play(),this._playingAudios.audios.push(e);e.RegisterEndCallBack((()=>{e.isPlaying=!1,"beatmap"in e&&e.beatmap&&this._musicQueue[0]==e&&this._musicQueue.splice(0,1),this._playingAudios.audios.forEach(((t,i)=>{t!==e||this._playingAudios.audios.splice(i,1)})),this.UpdateMusicQueue()}))}}},14981:function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.PlayingAudios=void 0;t.PlayingAudios=class{audios=[]}},9611:function(e,t,i){var n=this&&this.__createBinding||(Object.create?function(e,t,i,n){void 0===n&&(n=i);var s=Object.getOwnPropertyDescriptor(t,i);s&&!("get"in s?!t.__esModule:s.writable||s.configurable)||(s={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,n,s)}:function(e,t,i,n){void 0===n&&(n=i),e[n]=t[i]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.prototype.hasOwnProperty.call(e,i)&&n(t,e,i);return s(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.LogoVisualizer=void 0;const o=i(20825),r=a(i(58687)),l=i(5825),u=i(22331),d=i(87816);class c extends r.Container{static size=900;amplitudes;frequencyAmplitudes=new Float32Array(256);audio;analyzer;bufferLength;temporalAmplitudes=new Float32Array(256);graphics=new r.Graphics;index_change=5;bar_length=600;bars_per_visualiser=200;visualiser_rounds=5;decay_per_millisecond=.0024;time_between_updates=50;amplitude_dead_zone=1/this.bar_length;indexOffset=0;firstDraw=!0;start(){o.Main.AudioEngine.addMusicChangeEventListener((()=>this.initVisualizer())),this.graphics.blendMode="add",this.addChild(this.graphics),this.graphics.eventMode="none",this.eventMode="none",setInterval((()=>{this.updateAmplitudes()}),this.time_between_updates)}draw(e){if(this.firstDraw)for(let e=0;ethis.frequencyAmplitudes[t]&&(this.frequencyAmplitudes[t]=i)}this.indexOffset=(this.indexOffset+this.index_change)%this.bars_per_visualiser}initVisualizer(){if(this.audio=o.Main.AudioEngine.GetCurrentPlayingMusic(),this.audio){const e=this.audio.GetNode(AnalyserNode);if(null==e)throw new Error("Couldn't find any AnalyzerNode on Audio Object!");this.analyzer=e[0],this.bufferLength=this.analyzer.frequencyBinCount,this.amplitudes=new Float32Array(this.bufferLength)}else this.analyzer=new AnalyserNode(o.Main.AudioEngine.audioContext),this.analyzer.fftSize=512,this.bufferLength=this.analyzer.frequencyBinCount,this.amplitudes=new Float32Array(this.bufferLength)}updateFrequencyData(){for(let e=0;e{this.doAnims()}),800)}doAnims(){this.bgRotation+=90,r.ease.add(this.bgContainer,{angle:this.bgRotation},{duration:600,ease:"easeInOutQuad"})}getWidth(){return 100*this.scale.x}getHeight(){return 100*this.scale.y}draw(e){this.arcContainer.angle+=3*e.deltaTime}destroy(e){r.ease.add(this.container,{alpha:0,scale:.5},{duration:400,ease:"easeInOutQuad"}),setTimeout((()=>{clearInterval(this.animInterval),super.destroy(e)}),400)}}t.LoadAnim=l},16982:function(e,t,i){var n=this&&this.__createBinding||(Object.create?function(e,t,i,n){void 0===n&&(n=i);var s=Object.getOwnPropertyDescriptor(t,i);s&&!("get"in s?!t.__esModule:s.writable||s.configurable)||(s={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,n,s)}:function(e,t,i,n){void 0===n&&(n=i),e[n]=t[i]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.prototype.hasOwnProperty.call(e,i)&&n(t,e,i);return s(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.Menu=void 0;const o=a(i(58687)),r=i(23360);class l extends o.Container{menuBG=new o.Graphics;isOpened=!1;openAnim;constructor(){super(),this.menuBG.rect(0,-62.5,1,125),this.menuBG.fill({color:"rgb(50,50,50)"}),this.menuBG.scale.set(1,0),this.menuBG.alpha=0,this.addChild(this.menuBG)}Open(){this.isOpened=!0,this.openAnim=r.ease.add(this.menuBG,{scaleY:1,alpha:1},{duration:400,ease:"easeOutQuint"})}Close(){this.isOpened=!1,this.openAnim&&this.openAnim.remove(),r.ease.add(this.menuBG,{scaleY:0,alpha:0},{duration:300,ease:"easeInSine"})}isOpen(){return this.isOpened}onResize(){this.position.set(-window.innerWidth,0),this.menuBG.width=2*window.innerWidth}}t.Menu=l},54349:function(e,t,i){var n=this&&this.__createBinding||(Object.create?function(e,t,i,n){void 0===n&&(n=i);var s=Object.getOwnPropertyDescriptor(t,i);s&&!("get"in s?!t.__esModule:s.writable||s.configurable)||(s={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,n,s)}:function(e,t,i,n){void 0===n&&(n=i),e[n]=t[i]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.prototype.hasOwnProperty.call(e,i)&&n(t,e,i);return s(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.OsuCircle=void 0;const o=a(i(58687)),r=i(44961),l=a(i(29172)),u=i(92915),d=i(20825),c=i(12235),h=i(16982),g=i(8211),f=i(9611),p=i(22331),m=i(87816),S=i(5825);class b extends o.Container{outline;visualizer=new g.MenuLogoVisualizer;triangles=new r.Triangles;flash;logoContainer=new o.Container;logoBounceContainer=new o.Container;logoBeatContainer=new o.Container;logoAmplitudeContainer=new o.Container;logoHoverContainer=new o.Container;rippleContainer=new o.Container;ripple;menu=new h.Menu;defaultVisualizerAlpha=.5;early_activation=60;timeElapsedSinceLastBeat=0;selectSample=c.Loader.GetAudio("mainMenu.osuLogo.select");backToLogoSample=c.Loader.GetAudio("mainMenu.osuLogo.backToLogo");isMouseDown=!1;mouseDownPosition={x:0,y:0};constructor(){super(),this.visualizer.start(),this.outline=o.Sprite.from("mainMenu.logoOutline"),this.outline.anchor.set(.5,.5);let e=.6;this.visualizer.position.set(-f.LogoVisualizer.size/3.35,-f.LogoVisualizer.size/3.35),this.visualizer.scale.set(e),this.visualizer.alpha=this.defaultVisualizerAlpha;let t=o.Sprite.from("mainMenu.logoMask");t.anchor.set(.5,.5),t.scale=e,this.flash=o.Sprite.from("mainMenu.logoMask"),this.flash.anchor.set(.5,.5),this.flash.scale=e,this.flash.blendMode="add",this.flash.alpha=0,this.outline.scale.set(e),this.triangles.scale.set(e),this.triangles.position.set(-this.outline.width/2,-this.outline.height/2),this.triangles.mask=t,this.ripple=o.Sprite.from("mainMenu.logoMask"),this.ripple.anchor.set(.5,.5),this.ripple.scale=e,this.ripple.alpha=0,this.ripple.blendMode="add",this.rippleContainer.addChild(this.ripple),this.logoContainer.addChild(this.visualizer),this.logoContainer.addChild(this.triangles),this.logoContainer.addChild(t),this.logoContainer.addChild(this.flash),this.logoContainer.addChild(this.outline),this.logoContainer.hitArea=new o.Circle(0,0,288),this.logoContainer.eventMode="static",this.logoContainer.onmouseenter=this._onmouseenter,this.logoContainer.onmouseleave=this._onmouseleave,this.logoContainer.onmousedown=this._onmousedown,this.logoContainer.onclick=this._onclick,this.logoBeatContainer.addChild(this.logoContainer),this.logoAmplitudeContainer.addChild(this.logoBeatContainer),this.logoBounceContainer.addChild(this.rippleContainer),this.logoBounceContainer.addChild(this.logoAmplitudeContainer),this.logoHoverContainer.addChild(this.logoBounceContainer),this.addChild(this.logoHoverContainer),d.Main.app.stage.addEventListener("mouseup",(e=>{this._onmouseup(e)}))}_onmouseenter=e=>{u.Ease.getEase(this.logoHoverContainer).ScaleTo(1.1,500,l.Easing.Elastic.Out)};_onmouseleave=e=>{u.Ease.getEase(this.logoHoverContainer).ScaleTo(1,500,l.Easing.Elastic.Out)};_onmousedown=e=>{this.isMouseDown=!0,u.Ease.getEase(this.logoBounceContainer).ClearEasings().ScaleTo(.9,1e3,l.Easing.Sinusoidal.Out),this.mouseDownPosition={x:d.Main.mousePos.x,y:d.Main.mousePos.y}};_onclick=e=>{this.flash.alpha=.4,u.Ease.getEase(this.flash).ClearEasings().FadeOut(1500,l.Easing.Exponential.Out)};_onmouseup=e=>{this.isMouseDown=!1,u.Ease.getEase(this.logoBounceContainer).ClearEasings().ScaleTo(1,500,l.Easing.Elastic.Out).TransformTo({x:0,y:0},800,l.Easing.Elastic.Out)};onResize(){this.menu.onResize()}draw(e){this.visualizer.draw(e),this.triangles.draw(e),this.timeElapsedSinceLastBeat+=e.deltaMS;let t=d.Main.AudioEngine.GetCurrentPlayingMusic(),i=t?t.beatmap.TimingPoints.GetCurrentUninheritedTimingPoint(Date.now()-t.timeStarted):new m.UnInheritedTimingPoint;if(t||(i.beatLength=1e3,i.effects=p.Effect.None),t){let n=t.GetMaximumAudioLevel();this.logoAmplitudeContainer.scale.set(S.MathUtil.Damp(this.logoAmplitudeContainer.scale.x,1-.04*Math.max(0,n-.4),.9,e.deltaMS)),this.triangles.Velocity=S.MathUtil.Damp(this.triangles.Velocity,.5*(i.effects==p.Effect.KiaiTime?4:2),.995,e.deltaMS)}else this.logoAmplitudeContainer.scale=1,this.triangles.Velocity=S.MathUtil.Damp(this.triangles.Velocity,.5,.9,e.deltaMS);if(this.timeElapsedSinceLastBeat>=i.beatLength&&(this.onNewBeat(),this.timeElapsedSinceLastBeat=0),this.isMouseDown){let e={x:d.Main.mousePos.x-this.mouseDownPosition.x,y:d.Main.mousePos.y-this.mouseDownPosition.y},t=Math.sqrt(e.x*e.x+e.y*e.y);e.x*=t<=0?0:Math.pow(t,.6)/t,e.y*=t<=0?0:Math.pow(t,.6)/t,this.logoBounceContainer.x=e.x,this.logoBounceContainer.y=e.y}}onNewBeat(){let e=d.Main.AudioEngine.GetCurrentPlayingMusic(),t=e?e.beatmap.TimingPoints.GetCurrentUninheritedTimingPoint(Date.now()-e.timeStarted):new m.UnInheritedTimingPoint;e||(t.beatLength=1e3);let i=t.beatLength,n=e?e.beatmap.TimingPoints.GetCurrentTimingPoints(Date.now()-e.timeStarted)[0]:new m.UnInheritedTimingPoint;e||(n.effects=p.Effect.None);let s=e?e.GetMaximumAudioLevel():0,a=Math.min(1,.4+s);u.Ease.getEase(this.logoBeatContainer).ScaleTo(1-.02*a,this.early_activation,l.Easing.Linear.None).Then().ScaleTo(1,2*i,l.Easing.Quintic.Out),this.rippleContainer.scale=1.02,u.Ease.getEase(this.rippleContainer).ClearEasings().ScaleTo(1.02*(1+.04*a),2*i,l.Easing.Quintic.Out),this.ripple.alpha=.15*a,u.Ease.getEase(this.ripple).ClearEasings().FadeOut(i,l.Easing.Quintic.Out),n.effects==p.Effect.KiaiTime&&(u.Ease.getEase(this.triangles.flash).ClearEasings().FadeTo(.2*a,this.early_activation,l.Easing.Linear.None).Then().FadeTo(0,i,l.Easing.Linear.None),u.Ease.getEase(this.visualizer).ClearEasings().FadeTo(1.8*this.defaultVisualizerAlpha*a,this.early_activation,l.Easing.Linear.None).Then().FadeTo(this.defaultVisualizerAlpha,i,l.Easing.Linear.None)),setTimeout((()=>{this.triangles.Velocity+=a*(n.effects==p.Effect.KiaiTime?6:3)}),60)}}t.OsuCircle=b},44961:function(e,t,i){var n=this&&this.__createBinding||(Object.create?function(e,t,i,n){void 0===n&&(n=i);var s=Object.getOwnPropertyDescriptor(t,i);s&&!("get"in s?!t.__esModule:s.writable||s.configurable)||(s={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,n,s)}:function(e,t,i,n){void 0===n&&(n=i),e[n]=t[i]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.prototype.hasOwnProperty.call(e,i)&&n(t,e,i);return s(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.Triangles=void 0;const o=a(i(58687));class r extends o.Container{flash;Velocity=1;bgGradient;triangles=[];triangleGenInterval;graphics=new o.Graphics;timeSinceLastSpawn=0;constructor(){super();let e=[16737963,13390473];this.bgGradient=new o.FillGradient(0,0,0,1024),e.forEach(((t,i)=>{const n=i/e.length;this.bgGradient.addColorStop(n,t)}));for(let e=0;e<15;e++)this.triangles.push({x:this.random(0,1024),y:this.random(0,1024),velocity:this.randVelocity()});this.timeSinceLastSpawn=Date.now(),this.triangleGenInterval=setInterval((()=>{}),800/this.Velocity),this.graphics.rect(0,0,1024,1024),this.graphics.fill(this.bgGradient),this.addChild(this.graphics),this.flash=o.Sprite.from("mainMenu.logoMask"),this.flash.alpha=0,this.flash.blendMode="add",this.addChild(this.flash)}destroy(e){super.destroy(e)}draw(e){this.destroyed||document.hasFocus()&&(Date.now()-this.timeSinceLastSpawn>800/this.Velocity&&(this.triangles.push({x:this.random(0,1024),y:974,velocity:this.randVelocity()}),this.timeSinceLastSpawn=Date.now()),this.graphics.clear(),this.graphics.rect(0,0,1024,1024),this.graphics.fill(this.bgGradient),this.triangles.forEach(((t,i)=>{t.y-=e.deltaTime*this.Velocity*t.velocity*4,this.graphics.moveTo(t.x,t.y),this.graphics.lineTo(t.x-250,t.y+400),this.graphics.lineTo(t.x+250,t.y+400),this.graphics.lineTo(t.x,t.y);let n=1;t.y+50<300&&(n=(t.y+50)/300),n=Math.min(Math.max(n,0),1),this.graphics.stroke({color:new o.Color("rgba(182, 52, 111, "+n.toFixed(6)+")"),width:4}),t.y+400<0&&this.triangles.splice(i,1)})))}random(e,t){return Math.random()*(t-e)+e}randVelocity(){let e=1-this.random(0,1),t=1-this.random(0,1),i=Math.sqrt(-2*Math.log(e))*Math.sin(2*Math.PI*t);return Math.max(.5+.16*i,.1)}}t.Triangles=r},55686:function(e,t,i){var n=this&&this.__createBinding||(Object.create?function(e,t,i,n){void 0===n&&(n=i);var s=Object.getOwnPropertyDescriptor(t,i);s&&!("get"in s?!t.__esModule:s.writable||s.configurable)||(s={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,n,s)}:function(e,t,i,n){void 0===n&&(n=i),e[n]=t[i]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.prototype.hasOwnProperty.call(e,i)&&n(t,e,i);return s(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.MenuCursor=void 0;const o=a(i(58687)),r=i(20825),l=i(23360),u=i(12235),d=i(5825),c=i(84283);class h extends o.Container{mouseCursor=o.Sprite.from("menu.cursor");mouseCursorAdditive=o.Sprite.from("menu.cursor.additive");mouseContainer=new o.Container;animContainer=new o.Container;animRotationContainer=new o.Container;mouseDownScaleAnim;mouseDownAdditiveAnim;mouseUpScaleAnim;mouseUpAdditiveAnim;mouseRotationAnim;dragRotationState=g.NotDragging;lastDragRotationState=g.NotDragging;mouseHideContainer=new o.Container;hideScaleAnim;hideAlphaAnim;posMouseDown={x:0,y:0};mouseIsDown=!1;cursorTapSample=u.Loader.GetAudio("menu.cursor.sample.tap");mouseButtonClicked=-9999;constructor(e){super(),this.updateMouse(),this.mouseContainer.scale.set(.07*c.Screen.getScaleBasedOffScreenSize()),this.mouseCursorAdditive.alpha=0,this.mouseCursorAdditive.blendMode="add",this.mouseCursorAdditive.tint="0xFF66AA",this.mouseContainer.addChild(this.mouseCursor),this.mouseContainer.addChild(this.mouseCursorAdditive),this.animContainer.addChild(this.mouseContainer),this.animRotationContainer.addChild(this.animContainer),this.mouseHideContainer.addChild(this.animRotationContainer),this.addChild(this.mouseHideContainer),e||(this.mouseHideContainer.scale.set(.6),this.mouseHideContainer.alpha=0,this.animRotationContainer.angle=0),this.zIndex=999999,this.eventMode="none",r.Main.app.stage.addChild(this),this.addEventListeners()}addEventListeners(){r.Main.app.stage.addEventListener("mousedown",(e=>{this.mouseButtonClicked=e.button,this.visible&&(this.posMouseDown={x:r.Main.mousePos.x,y:r.Main.mousePos.y},this.mouseIsDown=!0,this.dragRotationState=g.DragStarted,this.mouseUpScaleAnim&&this.mouseUpAdditiveAnim&&(this.mouseUpScaleAnim.remove(),this.mouseUpAdditiveAnim.remove()),this.mouseDownScaleAnim=l.ease.add(this.animContainer,{scale:.9},{ease:"easeOutQuint",duration:800}),this.mouseDownAdditiveAnim=l.ease.add(this.mouseCursorAdditive,{alpha:1},{ease:"easeOutQuint",duration:800}),r.Main.AudioEngine.PlayEffect(this.cursorTapSample))})),r.Main.app.stage.addEventListener("mouseup",(e=>{this.visible&&e.button==this.mouseButtonClicked&&(this.mouseIsDown=!1,this.mouseDownScaleAnim&&this.mouseDownAdditiveAnim&&(this.mouseDownAdditiveAnim.remove(),this.mouseDownScaleAnim.remove()),this.mouseUpScaleAnim=l.ease.add(this.animContainer,{scale:1},{ease:"easeOutElastic",duration:500}),this.mouseUpAdditiveAnim=l.ease.add(this.mouseCursorAdditive,{alpha:0},{ease:"easeOutQuint",duration:500}),this.dragRotationState!=g.NotDragging&&(this.dragRotationState==g.Rotating&&(this.mouseRotationAnim=l.ease.add(this.animRotationContainer,{angle:0},{ease:"easeOutElastic",duration:800*(.5+Math.abs(this.animRotationContainer.angle/960))})),this.dragRotationState=g.NotDragging),r.Main.AudioEngine.PlayEffect(this.cursorTapSample,.8))}))}PopIn(){this.mouseRotationAnim&&this.mouseRotationAnim.remove(),this.hideAlphaAnim&&this.hideScaleAnim&&(this.hideAlphaAnim.remove(),this.hideScaleAnim.remove()),this.visible=!0,this.hideAlphaAnim=l.ease.add(this.mouseHideContainer,{alpha:1},{duration:250,ease:"easeOutQuint"}),this.hideScaleAnim=l.ease.add(this.mouseHideContainer,{scale:1},{duration:400,ease:"easeOutQuint"}),this.mouseRotationAnim=l.ease.add(this.animRotationContainer,{angle:0},{duration:400,ease:"easeOutQuint"}),this.dragRotationState=g.NotDragging}PopOut(){this.mouseRotationAnim&&this.mouseRotationAnim.remove(),this.hideAlphaAnim&&this.hideScaleAnim&&(this.hideAlphaAnim.remove(),this.hideScaleAnim.remove()),this.hideAlphaAnim=l.ease.add(this.mouseHideContainer,{alpha:0},{duration:250,ease:"easeOutQuint"}),this.hideScaleAnim=l.ease.add(this.mouseHideContainer,{scale:.6},{duration:250,ease:"easeOutQuint"}),this.mouseRotationAnim=l.ease.add(this.animRotationContainer,{angle:0},{duration:400,ease:"easeOutQuint"}),this.hideAlphaAnim.once("complete",(()=>{this.visible=!1})),this.dragRotationState=g.NotDragging}updateMouse(){if(this.mouseContainer.scale.set(.07*c.Screen.getScaleBasedOffScreenSize()),this.position.set(r.Main.mousePos.x,r.Main.mousePos.y),this.dragRotationState!=g.NotDragging&&this.visible){let e=Math.sqrt((2^Math.abs(this.posMouseDown.x-r.Main.mousePos.x))+(2^Math.abs(this.posMouseDown.y-r.Main.mousePos.y)));if(this.dragRotationState==g.DragStarted&&e>15&&(this.dragRotationState=g.Rotating,this.lastDragRotationState!=this.dragRotationState&&(this.posMouseDown={x:r.Main.mousePos.x,y:r.Main.mousePos.y})),this.dragRotationState==g.Rotating&&e>0){this.mouseRotationAnim&&this.mouseRotationAnim.remove();let e=r.Main.mousePos.x-this.posMouseDown.x,t=r.Main.mousePos.y-this.posMouseDown.y,i=d.MathUtil.RadiansToDegrees(Math.atan2(-e,t))+24.3,n=(i-this.animRotationContainer.angle)%360;n<-180&&(n+=360),n>180&&(n-=360),i=this.animRotationContainer.angle+n,this.mouseRotationAnim=l.ease.add(this.animRotationContainer,{angle:i},{duration:120,ease:"easeOutQuint"})}}this.lastDragRotationState=this.dragRotationState}}var g;t.MenuCursor=h,function(e){e[e.NotDragging=0]="NotDragging",e[e.DragStarted=1]="DragStarted",e[e.Rotating=2]="Rotating"}(g||(g={}))},36721:function(e,t,i){var n=this&&this.__createBinding||(Object.create?function(e,t,i,n){void 0===n&&(n=i);var s=Object.getOwnPropertyDescriptor(t,i);s&&!("get"in s?!t.__esModule:s.writable||s.configurable)||(s={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,n,s)}:function(e,t,i,n){void 0===n&&(n=i),e[n]=t[i]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.prototype.hasOwnProperty.call(e,i)&&n(t,e,i);return s(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.RandomBackground=void 0;const o=a(i(58687)),r=i(12235),l=i(84283),u=i(92915),d=a(i(29172)),c=i(20825);class h extends l.Screen{bgContainer=new o.Container;parallaxMultiplier=60;start(){this.bgContainer.pivot.set(.5,.5),this.bgContainer.position.set((c.Main.mousePos.x-this.getScreenWidth()/2)/this.parallaxMultiplier,(c.Main.mousePos.y-this.getScreenHeight()/2)/this.parallaxMultiplier),this.addChild(this.bgContainer),this.newRandomBG(),c.Main.AudioEngine.addMusicChangeEventListener((()=>{this.newRandomBG()}))}setBG(e){if(0==this.bgContainer.children?.length)this.bgContainer.addChild(e);else{let t=this.bgContainer.children[0];e.zIndex=-1,this.bgContainer.addChild(e),u.Ease.getEase(t,!0).FadeOut(800,d.Easing.Linear.None).Then((()=>{e.zIndex=0,t.destroy()}))}e.anchor.set(.5,.5),this.onResize()}newRandomBG(){let e=r.Loader.seasonalBackgroundsNum>0,t=(i=1,n=e?r.Loader.seasonalBackgroundsNum:r.Loader.defaultBackgroundsNum,Math.round(Math.random()*(n-i)+i));var i,n;this.setBG(o.Sprite.from((e?"seasonal_bg":"default_bg")+t))}draw(e){this.bgContainer.position.set((c.Main.mousePos.x-this.getScreenWidth()/2)/this.parallaxMultiplier,(c.Main.mousePos.y-this.getScreenHeight()/2)/this.parallaxMultiplier)}onClose(){return Promise.resolve(this)}onResize(){this.bgContainer.children.forEach((e=>{if(e instanceof o.Sprite){let t,i=e.texture.width,n=e.texture.height;t=window.innerWidth>window.innerHeight?window.innerWidth/i:window.innerHeight/n,n*t{i.id==e&&(t=i.data)})),!t)throw new Error("Asset not found!");return t}static GetString(e){let t;if(this.loadedList.forEach((i=>{i.id==e&&(t=i.dataString)})),!t)throw new Error("Asset not found or is not a string!");return t}static GetAudio(e){let t;if(this.loadedList.forEach((i=>{i.id==e&&(t=i.dataAudio)})),!t)throw new Error("Asset not found or was not marked as audio during loading!");return t}static addBackgrounds(){return new Promise((e=>{for(let e=1;ee.json())).then((t=>{t.backgrounds.forEach(((e,t)=>{this.loadList.push({id:"seasonal_bg"+(t+1),url:"https://corsproxy.io/?"+encodeURIComponent(e.url),pixiBundleName:"textures",loadParser:"loadTextures"}),this.seasonalBackgroundsNum=t+1})),e()})).catch((t=>{console.warn("Could not fetch seasonal backgrounds.",t),e()}))}))}static Load(e){return this.addToLoadList(),new Promise((t=>{this.addBackgrounds().then((()=>{let i=[],n=[],s=[],a=0,r=0;this.loadList.forEach((e=>{e.pixiBundleName?n.push(e):i.push(e)})),n.forEach((e=>{let t=!1;s.forEach((i=>{i.length>0&&i[0].pixiBundleName==e.pixiBundleName&&(i.push(e),t=!0)})),t||s.push([e])}));const l=e=>{e?r++:a++,r+a>=this.loadList.length&&t()};i.forEach((t=>{fetch(t.url).then((e=>e.blob())).then((i=>{t.isText||t.isAudio?t.isText?i.text().then((e=>{l(),this.loadedList.push({id:t.id,data:i,dataString:e})})):t.isAudio&&i.arrayBuffer().then((t=>e.decodeAudioData(t))).then((e=>{l(),this.loadedList.push({id:t.id,data:i,dataAudio:e})})):(l(),this.loadedList.push({id:t.id,data:i}))})).catch((e=>{l(!0),console.warn("Asset '"+t.id+"' failed to load: "+e)}))})),s.forEach((e=>{if(e.length>0){if(!e[0].pixiBundleName)throw new Error("wtf????");let t=[];e.forEach((e=>{e.loadParser?t.push({alias:e.id,src:e.url,loadParser:e.loadParser}):t.push({alias:e.id,src:e.url})})),o.Assets.addBundle(e[0].pixiBundleName,t),o.Assets.loadBundle(e[0].pixiBundleName).then((()=>{e.forEach((()=>{l()}))}))}}))}))}))}}},25373:function(e,t,i){var n=this&&this.__createBinding||(Object.create?function(e,t,i,n){void 0===n&&(n=i);var s=Object.getOwnPropertyDescriptor(t,i);s&&!("get"in s?!t.__esModule:s.writable||s.configurable)||(s={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,n,s)}:function(e,t,i,n){void 0===n&&(n=i),e[n]=t[i]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.prototype.hasOwnProperty.call(e,i)&&n(t,e,i);return s(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.InteractScreen=void 0;const o=i(84283),r=a(i(58687)),l=i(20825),u=i(94433),d=i(23360);class c extends o.Screen{text;text2;textContainer=new r.Container;textContainerContainer=new r.Container;introTrack;clickSound;clickArea=new r.Graphics;constructor(e,t){super(),this.introTrack=e,this.clickSound=t,this.text=new r.Text({text:"Click anywhere to play!",style:{fontFamily:"TorusRegular",fontSize:36,fill:"white"}}),this.text2=new r.Text({text:"(this is for enabling audio because it's required by web-browsers\n to have interaction on this webpage before playing audio.)",style:{fontFamily:"TorusRegular",fontSize:26,fill:"gray",align:"center"}})}start(){this.text.anchor.set(.5,.5),this.text2.anchor.set(.5,.5),this.text2.position.set(0,this.text.height+15),this.textContainer.addChild(this.text),this.textContainer.addChild(this.text2),this.textContainer.scale.set(.5),this.textContainer.alpha=0,this.textContainerContainer.addChild(this.textContainer),this.textContainerContainer.scale=o.Screen.getScaleBasedOffScreenSize(),this.textContainerContainer.position.set(this.getScreenWidth()/2,this.getScreenHeight()/2),this.addChild(this.textContainerContainer),this.clickArea.rect(0,0,1,1),this.clickArea.fill("rgba(0,0,0,0)"),this.clickArea.width=this.getScreenWidth(),this.clickArea.height=this.getScreenHeight(),this.clickArea.position.set(0,0),this.addChild(this.clickArea),this.clickArea.eventMode="static",this.clickArea.cursor="pointer";const e=()=>{this.clickArea.eventMode="none",l.Main.AudioEngine.PlayEffect(this.clickSound),l.Main.switchScreen(new u.IntroScreen(this.introTrack)),document.body.style.cursor="none",l.Main.pointerLock(),l.Main.lockKeyboard()};this.clickArea.onclick=()=>{e()},this.clickArea.ontap=()=>{e()},d.ease.add(this.textContainer,{alpha:1,scale:1},{duration:400,ease:"easeOutQuad"})}onClose(){return new Promise((e=>{d.ease.add(this.textContainer,{alpha:0,scale:.5},{duration:200,ease:"easeInOutQuad"}),setTimeout((()=>{e(this)}),200)}))}draw(e){}onResize(){this.textContainerContainer.position.set(this.getScreenWidth()/2,this.getScreenHeight()/2),this.clickArea.width=this.getScreenWidth(),this.clickArea.height=this.getScreenHeight(),this.clickArea.position.set(0,0),this.textContainerContainer.scale=o.Screen.getScaleBasedOffScreenSize()}}t.InteractScreen=c},88662:function(e,t,i){var n=this&&this.__createBinding||(Object.create?function(e,t,i,n){void 0===n&&(n=i);var s=Object.getOwnPropertyDescriptor(t,i);s&&!("get"in s?!t.__esModule:s.writable||s.configurable)||(s={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,n,s)}:function(e,t,i,n){void 0===n&&(n=i),e[n]=t[i]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.prototype.hasOwnProperty.call(e,i)&&n(t,e,i);return s(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.GlitchingTriangles=void 0;const o=a(i(58687)),r=i(92915),l=a(i(29172));class u extends o.Container{constructor(e){super();let t=new o.Graphics,i=n(.2,1.2);function n(e,t){return Math.random()*(t-e)+e}t.moveTo(0,0),t.lineTo(-50*i,100*i),t.lineTo(50*i,100*i),t.lineTo(0,0),Math.random()<.5?t.fill("white"):t.stroke({color:"white",width:1});let s=n(e.x1,e.x2),a=n(e.y1,e.y2);t.position.set(s,a),r.Ease.getEase(t,!0).FadeOut(200,l.Easing.Linear.None),setTimeout((()=>{this.destroy()}),200),this.addChild(t)}}t.GlitchingTriangles=u},94433:function(e,t,i){var n=this&&this.__createBinding||(Object.create?function(e,t,i,n){void 0===n&&(n=i);var s=Object.getOwnPropertyDescriptor(t,i);s&&!("get"in s?!t.__esModule:s.writable||s.configurable)||(s={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,n,s)}:function(e,t,i,n){void 0===n&&(n=i),e[n]=t[i]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.prototype.hasOwnProperty.call(e,i)&&n(t,e,i);return s(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.IntroScreen=void 0;const o=i(84283),r=a(i(58687)),l=i(53931),u=i(20825),d=i(88662),c=i(23360),h=i(58940),g=i(55402),f=i(9752);class p extends o.Screen{introTrackUrl;doTextSpacingAnim=!1;triangles=new r.Container;ruleSetContainer=new r.Container;flash=new r.Graphics;logoContainerContainer=new r.Container;logoContainer=new r.Container;lazerLogo=new g.LazerLogo;flashed=!1;mainMenu;standard=r.Sprite.from("icon_ruleset_std");taiko=r.Sprite.from("icon_ruleset_taiko");ctb=r.Sprite.from("icon_ruleset_ctb");mania=r.Sprite.from("icon_ruleset_mania");welcomeText=new r.Text({text:"",style:{fontFamily:"TorusThin",fontSize:42,fill:"white",letterSpacing:5}});constructor(e){super(),this.introTrackUrl=URL.createObjectURL(e)}start(){this.lazerLogo.scale.set(o.Screen.getScaleBasedOffScreenSize()),this.logoContainer.addChild(this.lazerLogo),this.logoContainer.scale.set(1.2),this.logoContainerContainer.position.set(this.getScreenWidth()/2,this.getScreenHeight()/2),this.logoContainerContainer.pivot.set(.5,.5),this.logoContainerContainer.addChild(this.logoContainer),this.flash.rect(0,0,1,1),this.flash.fill("white"),this.flash.position.set(0,0),this.flash.width=this.getScreenWidth(),this.flash.height=this.getScreenHeight(),this.flash.blendMode="add",this.welcomeText.anchor.set(.5,.5),this.welcomeText.position.set(this.getScreenWidth()/2,this.getScreenHeight()/2),setTimeout((async()=>{const{entries:e}=await(0,l.unzip)(this.introTrackUrl);for(const[t,i]of Object.entries(e))if(t.endsWith(".osu")){i.text().then((t=>{let i=f.BeatmapParser.Parse(t);console.log(i);for(const[t,n]of Object.entries(e))t==i.General.AudioFileName&&n.arrayBuffer().then((e=>u.Main.AudioEngine.audioContext.decodeAudioData(e))).then((e=>{u.Main.AudioEngine.PlayMusicImmediately(e,i,(()=>{this.afterAudioPlay(),this.mainMenu=new h.MainMenu}))}))}));break}}),0)}afterAudioPlay(){let e;this.welcomeText.scale.set(o.Screen.getScaleBasedOffScreenSize()),this.addChild(this.welcomeText),setTimeout((()=>{this.welcomeText.text="wel",this.onResize()}),200),setTimeout((()=>{this.welcomeText.text="welcome",this.onResize()}),400),setTimeout((()=>{this.welcomeText.text="welcome to",this.onResize()}),700),this.triangles.position.set(this.getScreenWidth()/2,this.getScreenHeight()/2),this.triangles.scale.set(o.Screen.getScaleBasedOffScreenSize()),this.addChild(this.triangles),setTimeout((()=>{this.welcomeText.text="welcome to kosu!",this.doTextSpacingAnim=!0,e=setInterval((()=>{let e=new d.GlitchingTriangles({x1:-this.welcomeText.width/2-100,x2:this.welcomeText.width/2+100,y1:-this.welcomeText.height/2-150,y2:this.welcomeText.height/2+100});this.triangles.addChild(e)}),30),this.onResize()}),900),this.standard.anchor.set(.5,.5),this.standard.scale.set(.4*o.Screen.getScaleBasedOffScreenSize()),this.ruleSetContainer.addChild(this.standard),this.taiko.anchor.set(.5,.5),this.taiko.scale.set(.4*o.Screen.getScaleBasedOffScreenSize()),this.ruleSetContainer.addChild(this.taiko),this.ctb.anchor.set(.5,.5),this.ctb.scale.set(.4*o.Screen.getScaleBasedOffScreenSize()),this.ruleSetContainer.addChild(this.ctb),this.mania.anchor.set(.5,.5),this.mania.scale.set(.4*o.Screen.getScaleBasedOffScreenSize()),this.ruleSetContainer.addChild(this.mania),setTimeout((()=>{this.doTextSpacingAnim=!1,this.onResize(),clearInterval(e),this.welcomeText.destroy(),this.triangles.destroy(),this.ruleSetContainer.position.set(this.getScreenWidth()/2,this.getScreenHeight()/2),this.addChild(this.ruleSetContainer);this.standard.position.set(-375*o.Screen.getScaleBasedOffScreenSize(),0),this.taiko.position.set(-125*o.Screen.getScaleBasedOffScreenSize(),0),this.ctb.position.set(125*o.Screen.getScaleBasedOffScreenSize(),0),this.mania.position.set(375*o.Screen.getScaleBasedOffScreenSize(),0),c.ease.add(this.ruleSetContainer,{scale:.8},{duration:1e3,ease:"linear"})}),1450),setTimeout((()=>{this.standard.position.set(-240*o.Screen.getScaleBasedOffScreenSize(),0),this.taiko.position.set(-75*o.Screen.getScaleBasedOffScreenSize(),0),this.ctb.position.set(75*o.Screen.getScaleBasedOffScreenSize(),0),this.mania.position.set(240*o.Screen.getScaleBasedOffScreenSize(),0),this.standard.scale.set(o.Screen.getScaleBasedOffScreenSize()),this.taiko.scale.set(o.Screen.getScaleBasedOffScreenSize()),this.ctb.scale.set(o.Screen.getScaleBasedOffScreenSize()),this.mania.scale.set(o.Screen.getScaleBasedOffScreenSize())}),1650),setTimeout((()=>{this.standard.position.set(-350*o.Screen.getScaleBasedOffScreenSize(),0),this.taiko.position.set(-120*o.Screen.getScaleBasedOffScreenSize(),0),this.ctb.position.set(120*o.Screen.getScaleBasedOffScreenSize(),0),this.mania.position.set(350*o.Screen.getScaleBasedOffScreenSize(),0),this.standard.scale.set(2*o.Screen.getScaleBasedOffScreenSize()),this.taiko.scale.set(2*o.Screen.getScaleBasedOffScreenSize()),this.ctb.scale.set(2*o.Screen.getScaleBasedOffScreenSize()),this.mania.scale.set(2*o.Screen.getScaleBasedOffScreenSize()),c.ease.add(this.ruleSetContainer,{scale:1.3},{duration:1e3,ease:"linear"})}),1850),setTimeout((()=>{this.ruleSetContainer.visible=!1,this.lazerLogo.start(),this.addChild(this.logoContainerContainer),this.logoContainerContainer.scale.set(1.2),c.ease.add(this.logoContainerContainer,{scale:1},{duration:920,ease:"easeInQuad"}),setTimeout((()=>{c.ease.add(this.logoContainer,{scale:1.2-.8},{duration:276,ease:"easeInQuint"})}),644)}),2080),setTimeout((()=>{this.addChild(this.flash),this.flash.eventMode="none",this.flashed=!0,this.logoContainerContainer.visible=!1,c.ease.add(this.flash,{alpha:0},{duration:1e3,ease:"easeOutQuad"}),null==this.mainMenu&&(this.mainMenu=new h.MainMenu),u.Main.switchScreen(this.mainMenu),u.Main.cursor.PopIn()}),3e3)}draw(e){this.doTextSpacingAnim&&(this.welcomeText.style.letterSpacing+=.15*e.deltaTime,this.onResize())}onClose(){return new Promise((e=>{setTimeout((()=>{e(this)}),1e3)}))}onResize(){this.welcomeText.destroyed||this.welcomeText.position.set(this.getScreenWidth()/2,this.getScreenHeight()/2),this.triangles.destroyed||(this.triangles.position.set(this.getScreenWidth()/2,this.getScreenHeight()/2),this.triangles.scale.set(o.Screen.getScaleBasedOffScreenSize())),this.ruleSetContainer.destroyed||this.ruleSetContainer.position.set(this.getScreenWidth()/2,this.getScreenHeight()/2),!this.flash.destroyed&&this.flashed&&(this.flash.position.set(0,0),this.flash.width=this.getScreenWidth(),this.flash.height=this.getScreenHeight()),this.logoContainerContainer.destroyed||this.logoContainerContainer.position.set(this.getScreenWidth()/2,this.getScreenHeight()/2),this.lazerLogo.destroyed||this.lazerLogo.scale.set(o.Screen.getScaleBasedOffScreenSize()),this.welcomeText.destroyed||this.welcomeText.scale.set(o.Screen.getScaleBasedOffScreenSize()),this.standard.destroyed||this.standard.scale.set(.4*o.Screen.getScaleBasedOffScreenSize()),this.mania.destroyed||this.mania.scale.set(.4*o.Screen.getScaleBasedOffScreenSize()),this.ctb.destroyed||this.ctb.scale.set(.4*o.Screen.getScaleBasedOffScreenSize()),this.taiko.destroyed||this.taiko.scale.set(.4*o.Screen.getScaleBasedOffScreenSize())}}t.IntroScreen=p},55402:function(e,t,i){var n=this&&this.__createBinding||(Object.create?function(e,t,i,n){void 0===n&&(n=i);var s=Object.getOwnPropertyDescriptor(t,i);s&&!("get"in s?!t.__esModule:s.writable||s.configurable)||(s={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,n,s)}:function(e,t,i,n){void 0===n&&(n=i),e[n]=t[i]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.prototype.hasOwnProperty.call(e,i)&&n(t,e,i);return s(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.LazerLogo=void 0;const o=a(i(58687)),r=i(23360),l=i(87525);class u extends o.Container{highlight;background;textureHighlight=o.Texture.from("intro_triangles_osuLogo_anim_highlight");textureBackground=o.Texture.from("intro_triangles_osuLogo_anim_background");constructor(){super(),this.highlight=new l.LogoAnimation(this.textureHighlight,new o.Color("white")),this.background=new l.LogoAnimation(this.textureBackground,new o.Color("rgb(128, 128, 128)"))}start(){this.addChild(this.highlight),this.addChild(this.background);let e=new o.Container;e.scale.set(0,0),r.ease.add(e,{scale:1},{duration:920,ease:"linear"}).on("each",(()=>{this.highlight.setProgress(e.scale.x),this.background.setProgress(e.scale.x)}))}}t.LazerLogo=u},87525:function(e,t,i){var n=this&&this.__createBinding||(Object.create?function(e,t,i,n){void 0===n&&(n=i);var s=Object.getOwnPropertyDescriptor(t,i);s&&!("get"in s?!t.__esModule:s.writable||s.configurable)||(s={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,n,s)}:function(e,t,i,n){void 0===n&&(n=i),e[n]=t[i]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.prototype.hasOwnProperty.call(e,i)&&n(t,e,i);return s(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.LogoAnimation=void 0;const o=a(i(58687)),r=i(12235);class l extends o.Container{shader;texture;constructor(e,t){super(),this.texture=e;const i=r.Loader.GetString("webgl:shaders/logoAnimation.frag"),n=r.Loader.GetString("webgl:shaders/logoAnimation.vert");this.shader=o.Shader.from({gl:{vertex:n,fragment:i},resources:{uTexture:this.texture.source,uProgress:{progress:{value:0,type:"f32"}}}});const s=new o.Geometry({attributes:{aPosition:[-this.texture.width/2,-this.texture.height/2,this.texture.width/2,-this.texture.height/2,this.texture.width/2,this.texture.width/2,-this.texture.width/2,this.texture.width/2],aUV:[0,0,1,0,1,1,0,1],aColor:[t.red,t.green,t.blue,t.alpha,t.red,t.green,t.blue,t.alpha,t.red,t.green,t.blue,t.alpha,t.red,t.green,t.blue,t.alpha]},indexBuffer:[0,1,2,0,2,3]}),a=new o.Mesh({geometry:s,shader:this.shader});this.addChild(a)}setProgress(e){this.shader.resources.uProgress.uniforms.progress=e}}t.LogoAnimation=l},76969:function(e,t,i){Object.defineProperty(t,"__esModule",{value:!0}),t.LoadScreen=void 0;const n=i(84283),s=i(49323);class a extends n.Screen{loadAnim=new s.LoadAnim("rgba(255,255,255,0.7)","black");start(){this.loadAnim.scale.set(.8*n.Screen.getScaleBasedOffScreenSize()),this.loadAnim.position.set(this.getScreenWidth()-this.loadAnim.getWidth()-15,this.getScreenHeight()-this.loadAnim.getHeight()-15),this.addChild(this.loadAnim)}draw(e){this.loadAnim?.draw(e)}onClose(){return new Promise((e=>{null!=this.loadAnim&&this.loadAnim.destroy(),setTimeout((()=>{e(this)}),400)}))}onResize(){this.loadAnim.position.set(this.getScreenWidth()-this.loadAnim.getWidth()-20,this.getScreenHeight()-this.loadAnim.getHeight()-20),this.loadAnim.scale.set(.8*n.Screen.getScaleBasedOffScreenSize())}}t.LoadScreen=a},58940:function(e,t,i){Object.defineProperty(t,"__esModule",{value:!0}),t.MainMenu=void 0;const n=i(84283),s=i(36721),a=i(54349);class o extends n.Screen{bg=new s.RandomBackground;osuCircle=new a.OsuCircle;start(){this.bg.start(),this.addChild(this.bg),this.osuCircle.scale=n.Screen.getScaleBasedOffScreenSize(),this.addChild(this.osuCircle)}draw(e){this.bg.draw(e),this.osuCircle.draw(e)}onClose(){return new Promise((e=>{this.bg.onClose().then((()=>{e(this)}))}))}onResize(){this.osuCircle.position.set(this.getScreenWidth()/2,this.getScreenHeight()/2),this.bg.onResize(),this.osuCircle.onResize(),this.osuCircle.scale=n.Screen.getScaleBasedOffScreenSize()}}t.MainMenu=o},84283:function(e,t,i){var n=this&&this.__createBinding||(Object.create?function(e,t,i,n){void 0===n&&(n=i);var s=Object.getOwnPropertyDescriptor(t,i);s&&!("get"in s?!t.__esModule:s.writable||s.configurable)||(s={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,n,s)}:function(e,t,i,n){void 0===n&&(n=i),e[n]=t[i]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.prototype.hasOwnProperty.call(e,i)&&n(t,e,i);return s(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.Screen=void 0;const o=a(i(58687)),r=i(58293),l=i(64681);class u extends o.Container{constructor(){super()}static getScaleBasedOffScreenSize(){const e=r.Settings.getSetting(l.UIScale).getValue();return(window.innerWidth/1920+window.innerHeight/1080)/2*e}getScreenWidth(){return window.innerWidth}getScreenHeight(){return window.innerHeight}}t.Screen=u},75341:function(e,t,i){Object.defineProperty(t,"__esModule",{value:!0}),t.SettingsCategory=t.Setting=void 0;const n=i(58293);var s;t.Setting=class{info;constructor(e){this.info=e,n.Settings.register({setting:this,info:e})}},function(e){e.General="General",e.Skin="Skin",e.Input="Input",e.UserInterface="User Interface",e.Gameplay="Gameplay",e.Rulesets="Rulesets",e.Audio="Audio",e.Graphics="Graphics",e.Online="Online",e.Maintenance="Maintenance",e.Debug="Debug"}(s||(t.SettingsCategory=s={}))},74975:function(e,t,i){Object.defineProperty(t,"__esModule",{value:!0}),t.DropdownSetting=void 0;const n=i(75341),s=i(58293);class a extends n.Setting{value;getValue(){if(!this.value)throw new Error("Value is undefined!");return this.value}getDefaultValue(){return this.defaultValue}setValue(e){this.list.find((t=>t.value==e.value&&t.displayName==e.displayName))?(this.value=e,s.Settings.save()):console.warn("The value provided to this DropDownSetting does not exist in the option list! Ignoring value provided.")}loadFromSaveValue(e){this.list.find((t=>t.value==e.value&&t.displayName==e.displayName))?this.value=e:console.warn("The value provided to this DropDownSetting does not exist in the option list! Ignoring value provided.")}}t.DropdownSetting=a},78642:function(e,t,i){Object.defineProperty(t,"__esModule",{value:!0}),t.RangeSetting=void 0;const n=i(75341),s=i(58293),a=i(5825);class o extends n.Setting{value=0;getValue(){return this.value}getDefaultValue(){return this.defaultValue}setValue(e){this.value=a.MathUtil.clamp(this.minValue,this.maxValue,e),s.Settings.save()}loadFromSaveValue(e){this.value=a.MathUtil.clamp(this.minValue,this.maxValue,e)}}t.RangeSetting=o},58293:function(e,t,i){Object.defineProperty(t,"__esModule",{value:!0}),t.Settings=void 0;const n=i(64681),s=i(44256);t.Settings=class{static settingsList=[];static registerAll(){new n.UIScale,new s.Renderer}static load(){let e=window.localStorage.getItem("settings");if(null==e)return;let t=this.getList();try{JSON.parse(e).forEach((e=>{let i=!1;try{e.value||(console.warn("Setting '"+JSON.stringify(e)+"' may be corrupted, skipping!"),i=!0),e.info?(e.info.name||(console.warn("Setting '"+JSON.stringify(e)+"' may be corrupted, skipping!"),i=!0),e.info.category||(console.warn("Setting '"+JSON.stringify(e)+"' may be corrupted, skipping!"),i=!0)):(console.warn("Setting '"+JSON.stringify(e)+"' may be corrupted, skipping!"),i=!0)}catch(e){console.warn("Something went wrong when validating saved settings!",e),console.warn("The setting may be REALLY corrupted, skipping!"),i=!0}if(!i){let i=t.filter((t=>t.info.name==e.info.name&&t.info.category==e.info.category))[0];i?i.setting.loadFromSaveValue(e.value):console.warn("Could not find setting object '"+e.info.name+"', maybe it has been removed in this version of kosu?, skipping setting")}}))}catch(e){console.warn("Failed to load settings! Resetting Settings due to corrupted save!",e),this.reset()}}static save(){let e=this.getList(),t=[];e.forEach((e=>{e.setting.getValue()!=e.setting.getDefaultValue()&&t.push({info:e.info,value:e.setting.getValue()})})),window.localStorage.setItem("settings",JSON.stringify(t))}static reset(){console.warn("Resetting Settings!"),window.localStorage.removeItem("settings")}static register(e){this.settingsList.push(e)}static getSetting(e){return this.settingsList.filter((t=>t.setting instanceof e))[0].setting}static getSettingData(e){return this.settingsList.filter((t=>t.setting instanceof e))[0]}static getList(){return this.settingsList}}},44256:function(e,t,i){Object.defineProperty(t,"__esModule",{value:!0}),t.Renderer=void 0;const n=i(75341),s=i(74975);class a extends s.DropdownSetting{list=[];webglOption={displayName:"WebGL",value:"webgl"};defaultValue=this.webglOption;constructor(){super({name:"Renderer",category:n.SettingsCategory.Graphics}),this.value=this.defaultValue}}t.Renderer=a},64681:function(e,t,i){Object.defineProperty(t,"__esModule",{value:!0}),t.UIScale=void 0;const n=i(78642),s=i(75341);class a extends n.RangeSetting{maxValue=.8;minValue=1.6;increment=.1;defaultValue=1;constructor(){super({name:"UI scaling",category:s.SettingsCategory.Graphics}),this.value=this.defaultValue}}t.UIScale=a},17898:function(e,t,i){Object.defineProperty(t,"__esModule",{value:!0}),t.BeatmapData=void 0;const n=i(85932),s=i(20352),a=i(32007),o=i(78878),r=i(54611),l=i(6386),u=i(43354);t.BeatmapData=class{General=new n.GeneralData;Editor=new s.EditorData;Metadata=new a.Metadata;Difficulty=new o.DifficultyData;Events=new r.EventsData;TimingPoints=new l.TimingPointsData;Colors=new u.ColorsData}},43354:function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.ColorsData=void 0;t.ColorsData=class{Colors=[]}},78878:function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.DifficultyData=void 0;t.DifficultyData=class{HPDrainRate;CircleSize;OverallDifficulty;ApproachRate;SliderMultiplier;SliderTickRate}},20352:function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.EditorData=void 0;t.EditorData=class{Bookmarks=[];DistanceSpacing;BeatDivisor;GridSize;TimelineZoom}},54611:function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.EventsData=void 0;t.EventsData=class{Events=[]}},37940:function(e,t){var i;Object.defineProperty(t,"__esModule",{value:!0}),t.Countdown=void 0,function(e){e[e.NoCountdown=0]="NoCountdown",e[e.Normal=1]="Normal",e[e.Half=2]="Half",e[e.Double=3]="Double"}(i||(t.Countdown=i={}))},85932:function(e,t,i){Object.defineProperty(t,"__esModule",{value:!0}),t.GeneralData=void 0;const n=i(37940),s=i(41080),a=i(90857),o=i(45274);t.GeneralData=class{AudioFileName;AudioLeadIn=0;AudioHash;PreviewTime=-1;Countdown=n.Countdown.Normal;SampleSet=s.SampleSet.Normal;StackLeniency=.7;Mode=a.Mode.OSU;LetterboxInBreaks=!1;StoryFireInFront=!0;UseSkinSprites=!1;AlwaysShowPlayfield=!1;OverlayPosition=o.OverlayPosition.NoChange;SkinPreference;EpilepsyWarning=!1;CountdownOffset=0;SpecialStyle=!1;WidescreenStoryboard=!1;SamplesMatchPlaybackRate=!1}},90857:function(e,t){var i;Object.defineProperty(t,"__esModule",{value:!0}),t.Mode=void 0,function(e){e[e.OSU=0]="OSU",e[e.TAIKO=1]="TAIKO",e[e.CATCH=2]="CATCH",e[e.MANIA=3]="MANIA"}(i||(t.Mode=i={}))},45274:function(e,t){var i;Object.defineProperty(t,"__esModule",{value:!0}),t.OverlayPosition=void 0,function(e){e.NoChange="NoChange",e.Below="Below",e.Above="Above"}(i||(t.OverlayPosition=i={}))},41080:function(e,t){var i;Object.defineProperty(t,"__esModule",{value:!0}),t.SampleSet=void 0,function(e){e.Normal="Normal",e.Soft="Soft",e.Drum="Drum"}(i||(t.SampleSet=i={}))},32007:function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.Metadata=void 0;t.Metadata=class{Title;TitleUnicode;Artist;ArtistUnicode;Creator;Version;Source;Tags;BeatmapID;BeatmapSetID}},22331:function(e,t){var i;Object.defineProperty(t,"__esModule",{value:!0}),t.Effect=void 0,function(e){e[e.KiaiTime=1]="KiaiTime",e[e.None=0]="None",e[e.FirstBarLineOmittedInOsuTaikoAndOsuMania=3]="FirstBarLineOmittedInOsuTaikoAndOsuMania"}(i||(t.Effect=i={}))},3143:function(e,t,i){Object.defineProperty(t,"__esModule",{value:!0}),t.InheritedTimingPoint=void 0;const n=i(52032);class s extends n.TimingPoint{sliderVelocityMultiplier}t.InheritedTimingPoint=s},52032:function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.TimingPoint=void 0;t.TimingPoint=class{time;sampleSet;sampleIndex;volume;effects}},6386:function(e,t,i){Object.defineProperty(t,"__esModule",{value:!0}),t.TimingPointsData=void 0;const n=i(87816),s=i(3143);t.TimingPointsData=class{TimingPoints=[];GetCurrentTimingPoints(e){let t=[],i=this.TimingPoints.filter((t=>{if(t.time<=e)return t}));if(0==i.length&&i.push(this.TimingPoints[0]),t.push(i[i.length-1]),t[0]instanceof s.InheritedTimingPoint){let i=this.TimingPoints.filter((e=>e instanceof n.UnInheritedTimingPoint)).filter((t=>{if(t.time<=e)return t}));if(0==i.length)throw new Error("Could not find a parent timing point for the un-inherited timing point!");t.push(i[i.length-1])}if(0==t.length)throw new Error("Could not find any timing points!");return t}GetCurrentUninheritedTimingPoint(e){let t,i=this.GetCurrentTimingPoints(e);if(i[0]instanceof n.UnInheritedTimingPoint)t=i[0];else{if(!(i[1]instanceof n.UnInheritedTimingPoint))throw new Error("Could not find any UnInherited Timing Points!");t=i[1]}return t}}},87816:function(e,t,i){Object.defineProperty(t,"__esModule",{value:!0}),t.UnInheritedTimingPoint=void 0;const n=i(52032);class s extends n.TimingPoint{beatLength;meter}t.UnInheritedTimingPoint=s},9752:function(e,t,i){Object.defineProperty(t,"__esModule",{value:!0}),t.BeatmapParser=void 0;const n=i(17898),s=i(30444),a=i(81347);class o{static Parse(e,t){const i=new n.BeatmapData;let r=e.split(/\r?\n|\r|\n/g);return a.GeneralParser.ParseGeneral(i,o.GetSection("General",r)),s.TimingPointsParser.ParseTimingPoints(i,o.GetSection("TimingPoints",r)),i}static GetSection(e,t){let i=[];return t.forEach(((n,s)=>{if(n=="["+e+"]")for(let e=s+1;e{let i=t.split(":");"AudioFilename"==i[0]&&(i[1].startsWith(" ")?e.General.AudioFileName=i[1].substring(1,i[1].length):e.General.AudioFileName=i[1]),"AudioFilename"==i[0]&&(i[1].startsWith(" ")?e.General.AudioFileName=i[1].substring(1,i[1].length):e.General.AudioFileName=i[1])}))}}},30444:function(e,t,i){Object.defineProperty(t,"__esModule",{value:!0}),t.TimingPointsParser=void 0;const n=i(87816),s=i(3143),a=i(22331);t.TimingPointsParser=class{static ParseTimingPoints(e,t){t.forEach((t=>{let i,o=t.split(",");"1"==o[6]?(i=new n.UnInheritedTimingPoint,i.beatLength=Number.parseFloat(o[1]),i.meter=Number.parseInt(o[2])):(i=new s.InheritedTimingPoint,i.sliderVelocityMultiplier=Number.parseFloat(o[1])),i.time=Number.parseInt(o[0]),i.sampleSet=Number.parseInt(o[3]),i.sampleIndex=Number.parseInt(o[4]),i.volume=Number.parseInt(o[5]),"1"==o[7]||"3"==o[7]?i.effects=Number.parseInt(o[7]):i.effects=a.Effect.None,e.TimingPoints.TimingPoints.push(i)}))}}},5825:function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.MathUtil=void 0;class i{static RadiansToDegrees(e){return 180*e/Math.PI}static DegreesToRadians(e){return e*Math.PI/180}static clamp(e,t,i){return Math.min(Math.max(i,e),t)}static clamp01(e){return i.clamp(0,1,e)}static Damp(e,t,n,s){return i.Lerp(e,t,1-Math.pow(n,s))}static Lerp(e,t,i){return e+(t-e)*i}}t.MathUtil=i},92915:function(e,t,i){var n=this&&this.__createBinding||(Object.create?function(e,t,i,n){void 0===n&&(n=i);var s=Object.getOwnPropertyDescriptor(t,i);s&&!("get"in s?!t.__esModule:s.writable||s.configurable)||(s={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,n,s)}:function(e,t,i,n){void 0===n&&(n=i),e[n]=t[i]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.prototype.hasOwnProperty.call(e,i)&&n(t,e,i);return s(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.Ease=void 0;const o=a(i(29172));class r{static previousEases=[];easings=[];obj;delay=null;constructor(e,t){this.obj=e,t||r.previousEases.push(this)}static getEase(e,t){null==t&&(t=!1);let i=r.previousEases.filter((t=>t.obj==e));return i.length>0?i[0]:new r(e,t)}createTween(e,t,i,n,s,a){const r={value:0},l=new o.Tween(i?r:e);return l.to(i?{value:1}:t,s),l.easing(a),l.onUpdate((()=>{this.obj[n]=i?r.value*(t.value-e.value)+e.value:e})),l.onStart((()=>{i&&(e.value=this.obj[n])})),null==this.delay?l.start():(this.delay.chain(l),this.delay=null),this.easings.push({tween:l}),l.onStop((()=>{this.onDone(l)})),l.onComplete((()=>{this.onDone(l)})),this}TransformTo(e,t,i){return this.createTween(this.obj.position,e,!1,"position",t,i),this}onDone(e){this.easings=this.easings.filter((t=>t.tween!=e))}ScaleTo(e,t,i){let n={x:0,y:0};return"number"==typeof e&&(n.x=e,n.y=e),this.createTween(this.obj.scale,n,!1,"scale",t,i),this}FadeTo(e,t,i){return this.createTween({value:this.obj.alpha},{value:e},!0,"alpha",t,i),this}FadeOut(e,t){return this.FadeTo(0,e,t),this}FadeIn(e,t){return this.FadeTo(1,e,t),this}ClearEasings(){return this.easings.forEach((e=>{e.tween.stop()})),this.easings=[],this}Then(e){let t=this.easings.sort(((e,t)=>e.tween.getDuration()-t.tween.getDuration()));return t.length>0&&(this.delay=t[0].tween,null!=e&&(t[0].tween.onComplete((()=>{this.onDone(t[0].tween),e()})),t[0].tween.onStop((()=>{this.onDone(t[0].tween),e()})))),this}}t.Ease=r},29820:function(e,t,i){i(11307);const n=i(58687),s=i(20825),a=i(58293),o=i(44256);a.Settings.registerAll(),a.Settings.load();const r=window.innerWidth,l=window.innerHeight,u=new n.Application;window.onload=async()=>{const e=a.Settings.getSetting(o.Renderer).getValue().value;u.init({backgroundColor:"black",width:r,height:l,antialias:!0,preference:e,resolution:window.devicePixelRatio,autoDensity:!0}).then((()=>{new s.Main(u)}))},Object.defineProperty(window,"setSensitivity",{value:e=>{n.EventSystem.cursorSensitivity=e}})},20825:function(e,t,i){var n=this&&this.__createBinding||(Object.create?function(e,t,i,n){void 0===n&&(n=i);var s=Object.getOwnPropertyDescriptor(t,i);s&&!("get"in s?!t.__esModule:s.writable||s.configurable)||(s={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,n,s)}:function(e,t,i,n){void 0===n&&(n=i),e[n]=t[i]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.prototype.hasOwnProperty.call(e,i)&&n(t,e,i);return s(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.Main=void 0;const o=a(i(58687)),r=i(76969),l=i(25373),u=i(12235),d=i(55686),c=i(85437),h=a(i(29172)),g=i(29847);class f{static app;static mousePos={x:0,y:0};static pointerLockExitTime;static cursor;static AudioEngine;static currentScreen;static allScreens=[];static clickArea=new o.Graphics;static doPointerLock=!1;static settingsPane;constructor(e){f.app=e,document.body.appendChild(f.app.canvas),f.settingsPane=new g.SettingsPane,f.settingsPane.zIndex=999998,f.app.stage.addChild(f.settingsPane),document.addEventListener("keyup",(e=>{e.ctrlKey&&"KeyO"==e.code&&f.settingsPane.toggle()})),this.doResize(),window.addEventListener("resize",this.doResize),f.app.ticker.add((()=>{h.update()})),f.app.stage.eventMode="static",f.AudioEngine=new c.AudioEngine,f.app.stage.addEventListener("mousemove",(e=>{f.mousePos.x=e.clientX,f.mousePos.y=e.clientY,f.cursor&&f.cursor.updateMouse()})),document.addEventListener("pointerlockchange",this.pointerLockChanged,!1),f.switchScreen(new r.LoadScreen),u.Loader.Load(f.AudioEngine.audioContext).then((()=>{f.cursor=new d.MenuCursor(!1);let e=u.Loader.GetAudio("sample_dialog_ok"),t=u.Loader.Get("introTrianglesTrack");f.switchScreen(new l.InteractScreen(t,e))}))}static lockKeyboard(){navigator.keyboard&&navigator.keyboard.lock([]).then((()=>{console.log("Locked keyboard!"),document.fullscreenElement||console.warn("Keyboard lock won't work unless the user is in fullscreen (as requested by the game, not if the user just presses F11)!")}))}static pointerLock(){try{this.doPointerLock=!0,f.app.canvas.requestPointerLock({unadjustedMovement:!0})}catch(e){console.warn("Failed to lock cursor, error:",e),this.doPointerLock=!1}}static exitPointerLock(){this.doPointerLock=!1,f.app.canvas.exitPointerLock()}static switchScreen(e){null!=this.currentScreen&&(this.currentScreen.zIndex=1,this.currentScreen.onClose().then((e=>{for(let t=0;t{e.onResize()})),f.settingsPane.resize()}pointerLockChanged(){!document.pointerLockElement&&f.doPointerLock?(o.EventSystem.isPointerLocked=!1,f.pointerLockExitTime=Date.now(),f.clickArea=new o.Graphics,f.clickArea.rect(0,0,1,1),f.clickArea.fill("rgba(0,0,0,0.1)"),f.clickArea.width=window.innerWidth,f.clickArea.height=window.innerHeight,f.clickArea.position.set(0,0),f.app.stage.addChild(f.clickArea),f.clickArea.eventMode="static",f.clickArea.cursor="pointer",f.cursor.PopOut(),f.clickArea.zIndex=9999999,f.clickArea.onclick=()=>{Date.now()-f.pointerLockExitTime<1500||(f.clickArea.removeFromParent(),f.clickArea.destroy(),f.pointerLock(),f.cursor.PopIn())}):o.EventSystem.isPointerLocked=!0}}t.Main=f},11307:function(e,t,i){i.r(t)}},i={};function n(e){var s=i[e];if(void 0!==s)return s.exports;var a=i[e]={id:e,loaded:!1,exports:{}};return t[e].call(a.exports,a,a.exports,n),a.loaded=!0,a.exports}n.m=t,e=[],n.O=function(t,i,s,a){if(!i){var o=1/0;for(d=0;d=a)&&Object.keys(n.O).every((function(e){return n.O[e](i[l])}))?i.splice(l--,1):(r=!1,a0&&e[d-1][2]>a;d--)e[d]=e[d-1];e[d]=[i,s,a]},n.d=function(e,t){for(var i in t)n.o(t,i)&&!n.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),n.hmd=function(e){return(e=Object.create(e)).children||(e.children=[]),Object.defineProperty(e,"exports",{enumerable:!0,set:function(){throw new Error("ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: "+e.id)}}),e},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},function(){var e={179:0};n.O.j=function(t){return 0===e[t]};var t=function(t,i){var s,a,o=i[0],r=i[1],l=i[2],u=0;if(o.some((function(t){return 0!==e[t]}))){for(s in r)n.o(r,s)&&(n.m[s]=r[s]);if(l)var d=l(n)}for(t&&t(i);ut instanceof e));return t.length>0?t:null}ConnectToContext(e,t){if(!this.source)throw new Error("Source not created yet!");this._connectedToContext||(this._connectedToContext=!0,this.nodes.length>0?t?t(this.nodes,this.source):this.nodes.forEach(((t,i)=>{this.source.connect(t),t instanceof AnalyserNode||t.connect(e.destination)})):this.source.connect(e.destination))}Play(){if(!this.source)throw new Error("Source not created yet!");if(!this._connectedToContext)throw new Error("Not connected to audio context yet!");this.source.start(0,this.pausedTime),this.isPlaying=!0,this.isPaused=!1,this.timeStarted=Date.now()-this.pausedTime,this.pausedTime=0}Pause(){if(!this.source)throw new Error("Source not created yet!");if(!this._connectedToContext)throw new Error("Not connected to audio context yet!");this.pausedTime=Date.now()-this.timeStarted,this.source.stop(0),this.isPaused=!0,this.isPlaying=!1}Stop(){if(!this.source)throw new Error("Source not created yet!");if(!this._connectedToContext)throw new Error("Not connected to audio context yet!");this.source.stop(0),this.isPlaying=!1}RegisterEndCallBack(e){if(!this.source)throw new Error("Source not created yet!");this.source.onended=()=>{this.isPaused||e()}}}t.Audio=i;t.MapAudio=class extends i{beatmap;fadingOut=!1;fadeOutTimeout;playingCallback}},85437:function(e,t,i){Object.defineProperty(t,"__esModule",{value:!0}),t.AudioEngine=void 0;const n=i(14981),s=i(65918),a=i(20825);t.AudioEngine=class{audioContext;_playingAudios;_musicQueue=[];_audioIdTicker=0;_changeCallbacks=[];constructor(){this.audioContext=new AudioContext,this._playingAudios=new n.PlayingAudios,a.Main.app.ticker.add((()=>{this.update()}))}UpdateMusicQueue(){this._musicQueue[0]&&(this._musicQueue[0].fadingOut||0!=this._musicQueue[0].timeStarted||(this._play(this._musicQueue[0]),this._changeCallbacks.forEach((e=>e()))),this._musicQueue[0].fadingOut&&this._musicQueue[1]&&this._musicQueue[1]&&(this._play(this._musicQueue[1]),this._changeCallbacks.forEach((e=>e()))))}addMusicChangeEventListener(e){this._changeCallbacks.push(e)}removeMusicChangeEventListener(e){this._changeCallbacks=this._changeCallbacks.filter((t=>t!=e))}GetCurrentPlayingMusic(){return this._musicQueue[0]}PlayEffect(e,t){let i=new s.Audio;i.audio=e,i.id=this._audioIdTicker,this._play(i,t),this._audioIdTicker++}AddToMusicQueue(e,t,i){let n=new s.MapAudio;return n.audio=e,n.beatmap=t,n.id=this._audioIdTicker,i&&(n.playingCallback=i),this._musicQueue.push(n),this._audioIdTicker++,this.UpdateMusicQueue(),n.id}PlayMusicImmediately(e,t,i){this._musicQueue=[],this.AddToMusicQueue(e,t,i)}update(){let e=this.GetCurrentPlayingMusic();if(e){let t=e.GetNode(AnalyserNode)[1],i=e.GetNode(AnalyserNode)[2];t.getFloatFrequencyData(e.tempArrayL),i.getFloatFrequencyData(e.tempArrayR);let n=0;e.tempArrayL.forEach((e=>{n+=e}));let s=n/=e.tempArrayL.length,a=0;e.tempArrayR.forEach((e=>{a+=e}));let o=a/=e.tempArrayL.length;e.LeftChannel=(s+140)/140,e.RightChannel=(o+140)/140}}_play(e,t){if(e.Create(this.audioContext),"beatmap"in e&&e.beatmap){this._playingAudios.audios.forEach((e=>{if("beatmap"in e&&e.beatmap){clearTimeout(e.fadeOutTimeout),e.fadingOut=!0;let t=e.GetNode(GainNode);if(null==t)throw new Error("Gain Node doesn't exist on Audio Object!");t[0].gain.linearRampToValueAtTime(0,this.audioContext.currentTime+.4),setTimeout((()=>{e.Stop()}),400)}}));let t=this.audioContext.createGain();t.gain.value=0;let i=this.audioContext.createAnalyser();i.fftSize=512,i.smoothingTimeConstant=0;let n=this.audioContext.createChannelSplitter(2),s=this.audioContext.createAnalyser();s.smoothingTimeConstant=0,s.fftSize=32;let a=this.audioContext.createAnalyser();a.smoothingTimeConstant=0,a.fftSize=32,e.AddAudioNode(t),e.AddAudioNode(i),e.AddAudioNode(s),e.AddAudioNode(a),e.ConnectToContext(this.audioContext,((e,o)=>{o.connect(t),t.connect(this.audioContext.destination),o.connect(i),o.connect(n),n.connect(s,0),n.connect(a,1)})),e.Play(),this._playingAudios.audios.push(e),e.playingCallback&&e.playingCallback(),t.gain.linearRampToValueAtTime(1,this.audioContext.currentTime+.4),e.fadeOutTimeout=setTimeout((()=>{t.gain.linearRampToValueAtTime(0,this.audioContext.currentTime+.4)}),1e3*(e.audio.duration-.4))}else e.ConnectToContext(this.audioContext),t&&e.source&&(e.source.playbackRate.value=t),e.Play(),this._playingAudios.audios.push(e);e.RegisterEndCallBack((()=>{e.isPlaying=!1,"beatmap"in e&&e.beatmap&&this._musicQueue[0]==e&&this._musicQueue.splice(0,1),this._playingAudios.audios.forEach(((t,i)=>{t!==e||this._playingAudios.audios.splice(i,1)})),this.UpdateMusicQueue()}))}}},14981:function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.PlayingAudios=void 0;t.PlayingAudios=class{audios=[]}},9611:function(e,t,i){var n=this&&this.__createBinding||(Object.create?function(e,t,i,n){void 0===n&&(n=i);var s=Object.getOwnPropertyDescriptor(t,i);s&&!("get"in s?!t.__esModule:s.writable||s.configurable)||(s={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,n,s)}:function(e,t,i,n){void 0===n&&(n=i),e[n]=t[i]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.prototype.hasOwnProperty.call(e,i)&&n(t,e,i);return s(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.LogoVisualizer=void 0;const o=i(20825),r=a(i(58687)),l=i(5825),u=i(22331),d=i(87816);class h extends r.Container{static size=900;amplitudes;frequencyAmplitudes=new Float32Array(256);audio;analyzer;bufferLength;temporalAmplitudes=new Float32Array(256);graphics=new r.Graphics;index_change=5;bar_length=600;bars_per_visualiser=200;visualiser_rounds=5;decay_per_millisecond=.0024;time_between_updates=50;amplitude_dead_zone=1/this.bar_length;indexOffset=0;firstDraw=!0;start(){o.Main.AudioEngine.addMusicChangeEventListener((()=>this.initVisualizer())),this.graphics.blendMode="add",this.addChild(this.graphics),this.graphics.eventMode="none",this.eventMode="none",setInterval((()=>{this.updateAmplitudes()}),this.time_between_updates)}draw(e){if(this.firstDraw)for(let e=0;ethis.frequencyAmplitudes[t]&&(this.frequencyAmplitudes[t]=i)}this.indexOffset=(this.indexOffset+this.index_change)%this.bars_per_visualiser}initVisualizer(){if(this.audio=o.Main.AudioEngine.GetCurrentPlayingMusic(),this.audio){const e=this.audio.GetNode(AnalyserNode);if(null==e)throw new Error("Couldn't find any AnalyzerNode on Audio Object!");this.analyzer=e[0],this.bufferLength=this.analyzer.frequencyBinCount,this.amplitudes=new Float32Array(this.bufferLength)}else this.analyzer=new AnalyserNode(o.Main.AudioEngine.audioContext),this.analyzer.fftSize=512,this.bufferLength=this.analyzer.frequencyBinCount,this.amplitudes=new Float32Array(this.bufferLength)}updateFrequencyData(){for(let e=0;e{this.doAnims()}),800)}doAnims(){this.bgRotation+=90,r.ease.add(this.bgContainer,{angle:this.bgRotation},{duration:600,ease:"easeInOutQuad"})}getWidth(){return 100*this.scale.x}getHeight(){return 100*this.scale.y}draw(e){this.arcContainer.angle+=3*e.deltaTime}destroy(e){r.ease.add(this.container,{alpha:0,scale:.5},{duration:400,ease:"easeInOutQuad"}),setTimeout((()=>{clearInterval(this.animInterval),super.destroy(e)}),400)}}t.LoadAnim=l},16982:function(e,t,i){var n=this&&this.__createBinding||(Object.create?function(e,t,i,n){void 0===n&&(n=i);var s=Object.getOwnPropertyDescriptor(t,i);s&&!("get"in s?!t.__esModule:s.writable||s.configurable)||(s={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,n,s)}:function(e,t,i,n){void 0===n&&(n=i),e[n]=t[i]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.prototype.hasOwnProperty.call(e,i)&&n(t,e,i);return s(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.Menu=void 0;const o=a(i(58687)),r=i(23360);class l extends o.Container{menuBG=new o.Graphics;isOpened=!1;openAnim;constructor(){super(),this.menuBG.rect(0,-62.5,1,125),this.menuBG.fill({color:"rgb(50,50,50)"}),this.menuBG.scale.set(1,0),this.menuBG.alpha=0,this.addChild(this.menuBG)}Open(){this.isOpened=!0,this.openAnim=r.ease.add(this.menuBG,{scaleY:1,alpha:1},{duration:400,ease:"easeOutQuint"})}Close(){this.isOpened=!1,this.openAnim&&this.openAnim.remove(),r.ease.add(this.menuBG,{scaleY:0,alpha:0},{duration:300,ease:"easeInSine"})}isOpen(){return this.isOpened}onResize(){this.position.set(-window.innerWidth,0),this.menuBG.width=2*window.innerWidth}}t.Menu=l},54349:function(e,t,i){var n=this&&this.__createBinding||(Object.create?function(e,t,i,n){void 0===n&&(n=i);var s=Object.getOwnPropertyDescriptor(t,i);s&&!("get"in s?!t.__esModule:s.writable||s.configurable)||(s={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,n,s)}:function(e,t,i,n){void 0===n&&(n=i),e[n]=t[i]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.prototype.hasOwnProperty.call(e,i)&&n(t,e,i);return s(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.OsuCircle=void 0;const o=a(i(58687)),r=i(44961),l=a(i(29172)),u=i(92915),d=i(20825),h=i(12235),c=i(16982),g=i(8211),f=i(9611),p=i(22331),m=i(87816),S=i(5825);class w extends o.Container{outline;visualizer=new g.MenuLogoVisualizer;triangles=new r.Triangles;flash;logoContainer=new o.Container;logoBounceContainer=new o.Container;logoBeatContainer=new o.Container;logoAmplitudeContainer=new o.Container;logoHoverContainer=new o.Container;rippleContainer=new o.Container;ripple;menu=new c.Menu;defaultVisualizerAlpha=.5;early_activation=60;timeElapsedSinceLastBeat=0;selectSample=h.Loader.GetAudio("mainMenu.osuLogo.select");backToLogoSample=h.Loader.GetAudio("mainMenu.osuLogo.backToLogo");isMouseDown=!1;mouseDownPosition={x:0,y:0};constructor(){super(),this.visualizer.start(),this.outline=o.Sprite.from("mainMenu.logoOutline"),this.outline.anchor.set(.5,.5);let e=.6;this.visualizer.position.set(-f.LogoVisualizer.size/3.35,-f.LogoVisualizer.size/3.35),this.visualizer.scale.set(e),this.visualizer.alpha=this.defaultVisualizerAlpha;let t=o.Sprite.from("mainMenu.logoMask");t.anchor.set(.5,.5),t.scale=e,this.flash=o.Sprite.from("mainMenu.logoMask"),this.flash.anchor.set(.5,.5),this.flash.scale=e,this.flash.blendMode="add",this.flash.alpha=0,this.outline.scale.set(e),this.triangles.scale.set(e),this.triangles.position.set(-this.outline.width/2,-this.outline.height/2),this.triangles.mask=t,this.ripple=o.Sprite.from("mainMenu.logoMask"),this.ripple.anchor.set(.5,.5),this.ripple.scale=e,this.ripple.alpha=0,this.ripple.blendMode="add",this.rippleContainer.addChild(this.ripple),this.logoContainer.addChild(this.visualizer),this.logoContainer.addChild(this.triangles),this.logoContainer.addChild(t),this.logoContainer.addChild(this.flash),this.logoContainer.addChild(this.outline),this.logoContainer.hitArea=new o.Circle(0,0,288),this.logoContainer.eventMode="static",this.logoContainer.onmouseenter=this._onmouseenter,this.logoContainer.onmouseleave=this._onmouseleave,this.logoContainer.onmousedown=this._onmousedown,this.logoContainer.onclick=this._onclick,this.logoBeatContainer.addChild(this.logoContainer),this.logoAmplitudeContainer.addChild(this.logoBeatContainer),this.logoBounceContainer.addChild(this.rippleContainer),this.logoBounceContainer.addChild(this.logoAmplitudeContainer),this.logoHoverContainer.addChild(this.logoBounceContainer),this.addChild(this.logoHoverContainer),d.Main.app.stage.addEventListener("mouseup",(e=>{this._onmouseup(e)}))}_onmouseenter=e=>{u.Ease.getEase(this.logoHoverContainer).ScaleTo(1.1,500,l.Easing.Elastic.Out)};_onmouseleave=e=>{u.Ease.getEase(this.logoHoverContainer).ScaleTo(1,500,l.Easing.Elastic.Out)};_onmousedown=e=>{this.isMouseDown=!0,u.Ease.getEase(this.logoBounceContainer).ClearEasings().ScaleTo(.9,1e3,l.Easing.Sinusoidal.Out),this.mouseDownPosition={x:d.Main.mousePos.x,y:d.Main.mousePos.y}};_onclick=e=>{this.flash.alpha=.4,u.Ease.getEase(this.flash).ClearEasings().FadeOut(1500,l.Easing.Exponential.Out)};_onmouseup=e=>{this.isMouseDown=!1,u.Ease.getEase(this.logoBounceContainer).ClearEasings().ScaleTo(1,500,l.Easing.Elastic.Out).TransformTo({x:0,y:0},800,l.Easing.Elastic.Out)};onResize(){this.menu.onResize()}draw(e){this.visualizer.draw(e),this.triangles.draw(e),this.timeElapsedSinceLastBeat+=e.deltaMS;let t=d.Main.AudioEngine.GetCurrentPlayingMusic(),i=t?t.beatmap.TimingPoints.GetCurrentUninheritedTimingPoint(Date.now()-t.timeStarted):new m.UnInheritedTimingPoint;if(t||(i.beatLength=1e3,i.effects=p.Effect.None),t){let n=t.GetMaximumAudioLevel();this.logoAmplitudeContainer.scale.set(S.MathUtil.Damp(this.logoAmplitudeContainer.scale.x,1-.04*Math.max(0,n-.4),.9,e.deltaMS)),this.triangles.Velocity=S.MathUtil.Damp(this.triangles.Velocity,.5*(i.effects==p.Effect.KiaiTime?4:2),.995,e.deltaMS)}else this.logoAmplitudeContainer.scale=1,this.triangles.Velocity=S.MathUtil.Damp(this.triangles.Velocity,.5,.9,e.deltaMS);if(this.timeElapsedSinceLastBeat>=i.beatLength&&(this.onNewBeat(),this.timeElapsedSinceLastBeat=0),this.isMouseDown){let e={x:d.Main.mousePos.x-this.mouseDownPosition.x,y:d.Main.mousePos.y-this.mouseDownPosition.y},t=Math.sqrt(e.x*e.x+e.y*e.y);e.x*=t<=0?0:Math.pow(t,.6)/t,e.y*=t<=0?0:Math.pow(t,.6)/t,this.logoBounceContainer.x=e.x,this.logoBounceContainer.y=e.y}}onNewBeat(){let e=d.Main.AudioEngine.GetCurrentPlayingMusic(),t=e?e.beatmap.TimingPoints.GetCurrentUninheritedTimingPoint(Date.now()-e.timeStarted):new m.UnInheritedTimingPoint;e||(t.beatLength=1e3);let i=t.beatLength,n=e?e.beatmap.TimingPoints.GetCurrentTimingPoints(Date.now()-e.timeStarted)[0]:new m.UnInheritedTimingPoint;e||(n.effects=p.Effect.None);let s=e?e.GetMaximumAudioLevel():0,a=Math.min(1,.4+s);u.Ease.getEase(this.logoBeatContainer).ScaleTo(1-.02*a,this.early_activation,l.Easing.Linear.None).Then().ScaleTo(1,2*i,l.Easing.Quintic.Out),this.rippleContainer.scale=1.02,u.Ease.getEase(this.rippleContainer).ClearEasings().ScaleTo(1.02*(1+.04*a),2*i,l.Easing.Quintic.Out),this.ripple.alpha=.15*a,u.Ease.getEase(this.ripple).ClearEasings().FadeOut(i,l.Easing.Quintic.Out),n.effects==p.Effect.KiaiTime&&(u.Ease.getEase(this.triangles.flash).ClearEasings().FadeTo(.2*a,this.early_activation,l.Easing.Linear.None).Then().FadeTo(0,i,l.Easing.Linear.None),u.Ease.getEase(this.visualizer).ClearEasings().FadeTo(1.8*this.defaultVisualizerAlpha*a,this.early_activation,l.Easing.Linear.None).Then().FadeTo(this.defaultVisualizerAlpha,i,l.Easing.Linear.None)),setTimeout((()=>{this.triangles.Velocity+=a*(n.effects==p.Effect.KiaiTime?6:3)}),60)}}t.OsuCircle=w},44961:function(e,t,i){var n=this&&this.__createBinding||(Object.create?function(e,t,i,n){void 0===n&&(n=i);var s=Object.getOwnPropertyDescriptor(t,i);s&&!("get"in s?!t.__esModule:s.writable||s.configurable)||(s={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,n,s)}:function(e,t,i,n){void 0===n&&(n=i),e[n]=t[i]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.prototype.hasOwnProperty.call(e,i)&&n(t,e,i);return s(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.Triangles=void 0;const o=a(i(58687));class r extends o.Container{flash;Velocity=1;bgGradient;triangles=[];triangleGenInterval;graphics=new o.Graphics;timeSinceLastSpawn=0;constructor(){super();let e=[16737963,13390473];this.bgGradient=new o.FillGradient(0,0,0,1024),e.forEach(((t,i)=>{const n=i/e.length;this.bgGradient.addColorStop(n,t)}));for(let e=0;e<15;e++)this.triangles.push({x:this.random(0,1024),y:this.random(0,1024),velocity:this.randVelocity()});this.timeSinceLastSpawn=Date.now(),this.triangleGenInterval=setInterval((()=>{}),800/this.Velocity),this.graphics.rect(0,0,1024,1024),this.graphics.fill(this.bgGradient),this.addChild(this.graphics),this.flash=o.Sprite.from("mainMenu.logoMask"),this.flash.alpha=0,this.flash.blendMode="add",this.addChild(this.flash)}destroy(e){super.destroy(e)}draw(e){this.destroyed||document.hasFocus()&&(Date.now()-this.timeSinceLastSpawn>800/this.Velocity&&(this.triangles.push({x:this.random(0,1024),y:974,velocity:this.randVelocity()}),this.timeSinceLastSpawn=Date.now()),this.graphics.clear(),this.graphics.rect(0,0,1024,1024),this.graphics.fill(this.bgGradient),this.triangles.forEach(((t,i)=>{t.y-=e.deltaTime*this.Velocity*t.velocity*4,this.graphics.moveTo(t.x,t.y),this.graphics.lineTo(t.x-250,t.y+400),this.graphics.lineTo(t.x+250,t.y+400),this.graphics.lineTo(t.x,t.y);let n=1;t.y+50<300&&(n=(t.y+50)/300),n=Math.min(Math.max(n,0),1),this.graphics.stroke({color:new o.Color("rgba(182, 52, 111, "+n.toFixed(6)+")"),width:4}),t.y+400<0&&this.triangles.splice(i,1)})))}random(e,t){return Math.random()*(t-e)+e}randVelocity(){let e=1-this.random(0,1),t=1-this.random(0,1),i=Math.sqrt(-2*Math.log(e))*Math.sin(2*Math.PI*t);return Math.max(.5+.16*i,.1)}}t.Triangles=r},55686:function(e,t,i){var n=this&&this.__createBinding||(Object.create?function(e,t,i,n){void 0===n&&(n=i);var s=Object.getOwnPropertyDescriptor(t,i);s&&!("get"in s?!t.__esModule:s.writable||s.configurable)||(s={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,n,s)}:function(e,t,i,n){void 0===n&&(n=i),e[n]=t[i]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.prototype.hasOwnProperty.call(e,i)&&n(t,e,i);return s(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.MenuCursor=void 0;const o=a(i(58687)),r=i(20825),l=i(23360),u=i(12235),d=i(5825),h=i(84283);class c extends o.Container{mouseCursor=o.Sprite.from("menu.cursor");mouseCursorAdditive=o.Sprite.from("menu.cursor.additive");mouseContainer=new o.Container;animContainer=new o.Container;animRotationContainer=new o.Container;mouseDownScaleAnim;mouseDownAdditiveAnim;mouseUpScaleAnim;mouseUpAdditiveAnim;mouseRotationAnim;dragRotationState=g.NotDragging;lastDragRotationState=g.NotDragging;mouseHideContainer=new o.Container;hideScaleAnim;hideAlphaAnim;posMouseDown={x:0,y:0};mouseIsDown=!1;cursorTapSample=u.Loader.GetAudio("menu.cursor.sample.tap");mouseButtonClicked=-9999;constructor(e){super(),this.updateMouse(),this.mouseContainer.scale.set(.07*h.Screen.getScaleBasedOffScreenSize()),this.mouseCursorAdditive.alpha=0,this.mouseCursorAdditive.blendMode="add",this.mouseCursorAdditive.tint="0xFF66AA",this.mouseContainer.addChild(this.mouseCursor),this.mouseContainer.addChild(this.mouseCursorAdditive),this.animContainer.addChild(this.mouseContainer),this.animRotationContainer.addChild(this.animContainer),this.mouseHideContainer.addChild(this.animRotationContainer),this.addChild(this.mouseHideContainer),e||(this.mouseHideContainer.scale.set(.6),this.mouseHideContainer.alpha=0,this.animRotationContainer.angle=0),this.zIndex=999999,this.eventMode="none",r.Main.app.stage.addChild(this),this.addEventListeners()}addEventListeners(){r.Main.app.stage.addEventListener("mousedown",(e=>{this.mouseButtonClicked=e.button,this.visible&&(this.posMouseDown={x:r.Main.mousePos.x,y:r.Main.mousePos.y},this.mouseIsDown=!0,this.dragRotationState=g.DragStarted,this.mouseUpScaleAnim&&this.mouseUpAdditiveAnim&&(this.mouseUpScaleAnim.remove(),this.mouseUpAdditiveAnim.remove()),this.mouseDownScaleAnim=l.ease.add(this.animContainer,{scale:.9},{ease:"easeOutQuint",duration:800}),this.mouseDownAdditiveAnim=l.ease.add(this.mouseCursorAdditive,{alpha:1},{ease:"easeOutQuint",duration:800}),r.Main.AudioEngine.PlayEffect(this.cursorTapSample))})),r.Main.app.stage.addEventListener("mouseup",(e=>{this.visible&&e.button==this.mouseButtonClicked&&(this.mouseIsDown=!1,this.mouseDownScaleAnim&&this.mouseDownAdditiveAnim&&(this.mouseDownAdditiveAnim.remove(),this.mouseDownScaleAnim.remove()),this.mouseUpScaleAnim=l.ease.add(this.animContainer,{scale:1},{ease:"easeOutElastic",duration:500}),this.mouseUpAdditiveAnim=l.ease.add(this.mouseCursorAdditive,{alpha:0},{ease:"easeOutQuint",duration:500}),this.dragRotationState!=g.NotDragging&&(this.dragRotationState==g.Rotating&&(this.mouseRotationAnim=l.ease.add(this.animRotationContainer,{angle:0},{ease:"easeOutElastic",duration:800*(.5+Math.abs(this.animRotationContainer.angle/960))})),this.dragRotationState=g.NotDragging),r.Main.AudioEngine.PlayEffect(this.cursorTapSample,.8))}))}PopIn(){this.mouseRotationAnim&&this.mouseRotationAnim.remove(),this.hideAlphaAnim&&this.hideScaleAnim&&(this.hideAlphaAnim.remove(),this.hideScaleAnim.remove()),this.visible=!0,this.hideAlphaAnim=l.ease.add(this.mouseHideContainer,{alpha:1},{duration:250,ease:"easeOutQuint"}),this.hideScaleAnim=l.ease.add(this.mouseHideContainer,{scale:1},{duration:400,ease:"easeOutQuint"}),this.mouseRotationAnim=l.ease.add(this.animRotationContainer,{angle:0},{duration:400,ease:"easeOutQuint"}),this.dragRotationState=g.NotDragging}PopOut(){this.mouseRotationAnim&&this.mouseRotationAnim.remove(),this.hideAlphaAnim&&this.hideScaleAnim&&(this.hideAlphaAnim.remove(),this.hideScaleAnim.remove()),this.hideAlphaAnim=l.ease.add(this.mouseHideContainer,{alpha:0},{duration:250,ease:"easeOutQuint"}),this.hideScaleAnim=l.ease.add(this.mouseHideContainer,{scale:.6},{duration:250,ease:"easeOutQuint"}),this.mouseRotationAnim=l.ease.add(this.animRotationContainer,{angle:0},{duration:400,ease:"easeOutQuint"}),this.hideAlphaAnim.once("complete",(()=>{this.visible=!1})),this.dragRotationState=g.NotDragging}updateMouse(){if(this.mouseContainer.scale.set(.07*h.Screen.getScaleBasedOffScreenSize()),this.position.set(r.Main.mousePos.x,r.Main.mousePos.y),this.dragRotationState!=g.NotDragging&&this.visible){let e=Math.sqrt((2^Math.abs(this.posMouseDown.x-r.Main.mousePos.x))+(2^Math.abs(this.posMouseDown.y-r.Main.mousePos.y)));if(this.dragRotationState==g.DragStarted&&e>15&&(this.dragRotationState=g.Rotating,this.lastDragRotationState!=this.dragRotationState&&(this.posMouseDown={x:r.Main.mousePos.x,y:r.Main.mousePos.y})),this.dragRotationState==g.Rotating&&e>0){this.mouseRotationAnim&&this.mouseRotationAnim.remove();let e=r.Main.mousePos.x-this.posMouseDown.x,t=r.Main.mousePos.y-this.posMouseDown.y,i=d.MathUtil.RadiansToDegrees(Math.atan2(-e,t))+24.3,n=(i-this.animRotationContainer.angle)%360;n<-180&&(n+=360),n>180&&(n-=360),i=this.animRotationContainer.angle+n,this.mouseRotationAnim=l.ease.add(this.animRotationContainer,{angle:i},{duration:120,ease:"easeOutQuint"})}}this.lastDragRotationState=this.dragRotationState}}var g;t.MenuCursor=c,function(e){e[e.NotDragging=0]="NotDragging",e[e.DragStarted=1]="DragStarted",e[e.Rotating=2]="Rotating"}(g||(g={}))},36721:function(e,t,i){var n=this&&this.__createBinding||(Object.create?function(e,t,i,n){void 0===n&&(n=i);var s=Object.getOwnPropertyDescriptor(t,i);s&&!("get"in s?!t.__esModule:s.writable||s.configurable)||(s={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,n,s)}:function(e,t,i,n){void 0===n&&(n=i),e[n]=t[i]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.prototype.hasOwnProperty.call(e,i)&&n(t,e,i);return s(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.RandomBackground=void 0;const o=a(i(58687)),r=i(12235),l=i(84283),u=i(92915),d=a(i(29172)),h=i(20825);class c extends l.Screen{bgContainer=new o.Container;parallaxMultiplier=60;start(){this.bgContainer.pivot.set(.5,.5),this.bgContainer.position.set((h.Main.mousePos.x-this.getScreenWidth()/2)/this.parallaxMultiplier,(h.Main.mousePos.y-this.getScreenHeight()/2)/this.parallaxMultiplier),this.addChild(this.bgContainer),this.newRandomBG(),h.Main.AudioEngine.addMusicChangeEventListener((()=>{this.newRandomBG()}))}setBG(e){if(0==this.bgContainer.children?.length)this.bgContainer.addChild(e);else{let t=this.bgContainer.children[0];e.zIndex=-1,this.bgContainer.addChild(e),u.Ease.getEase(t,!0).FadeOut(800,d.Easing.Linear.None).Then((()=>{e.zIndex=0,t.destroy()}))}e.anchor.set(.5,.5),this.onResize()}newRandomBG(){let e=r.Loader.seasonalBackgroundsNum>0,t=(i=1,n=e?r.Loader.seasonalBackgroundsNum:r.Loader.defaultBackgroundsNum,Math.round(Math.random()*(n-i)+i));var i,n;this.setBG(o.Sprite.from((e?"seasonal_bg":"default_bg")+t))}draw(e){this.bgContainer.position.set((h.Main.mousePos.x-this.getScreenWidth()/2)/this.parallaxMultiplier,(h.Main.mousePos.y-this.getScreenHeight()/2)/this.parallaxMultiplier)}onClose(){return Promise.resolve(this)}onResize(){this.bgContainer.children.forEach((e=>{if(e instanceof o.Sprite){let t,i=e.texture.width,n=e.texture.height;t=window.innerWidth>window.innerHeight?window.innerWidth/i:window.innerHeight/n,n*t{i.id==e&&(t=i.data)})),!t)throw new Error("Asset not found!");return t}static GetString(e){let t;if(this.loadedList.forEach((i=>{i.id==e&&(t=i.dataString)})),!t)throw new Error("Asset not found or is not a string!");return t}static GetAudio(e){let t;if(this.loadedList.forEach((i=>{i.id==e&&(t=i.dataAudio)})),!t)throw new Error("Asset not found or was not marked as audio during loading!");return t}static addBackgrounds(){return new Promise((e=>{for(let e=1;ee.json())).then((t=>{t.backgrounds.forEach(((e,t)=>{this.loadList.push({id:"seasonal_bg"+(t+1),url:"https://corsproxy.io/?"+encodeURIComponent(e.url),pixiBundleName:"textures",loadParser:"loadTextures"}),this.seasonalBackgroundsNum=t+1})),e()})).catch((t=>{console.warn("Could not fetch seasonal backgrounds.",t),e()}))}))}static Load(e){return this.addToLoadList(),new Promise((t=>{this.addBackgrounds().then((()=>{let i=[],n=[],s=[],a=0,r=0;this.loadList.forEach((e=>{e.pixiBundleName?n.push(e):i.push(e)})),n.forEach((e=>{let t=!1;s.forEach((i=>{i.length>0&&i[0].pixiBundleName==e.pixiBundleName&&(i.push(e),t=!0)})),t||s.push([e])}));const l=e=>{e?r++:a++,r+a>=this.loadList.length&&t()};i.forEach((t=>{fetch(t.url).then((e=>e.blob())).then((i=>{t.isText||t.isAudio?t.isText?i.text().then((e=>{l(),this.loadedList.push({id:t.id,data:i,dataString:e})})):t.isAudio&&i.arrayBuffer().then((t=>e.decodeAudioData(t))).then((e=>{l(),this.loadedList.push({id:t.id,data:i,dataAudio:e})})):(l(),this.loadedList.push({id:t.id,data:i}))})).catch((e=>{l(!0),console.warn("Asset '"+t.id+"' failed to load: "+e)}))})),s.forEach((e=>{if(e.length>0){if(!e[0].pixiBundleName)throw new Error("wtf????");let t=[];e.forEach((e=>{e.loadParser?t.push({alias:e.id,src:e.url,loadParser:e.loadParser}):t.push({alias:e.id,src:e.url})})),o.Assets.addBundle(e[0].pixiBundleName,t),o.Assets.loadBundle(e[0].pixiBundleName).then((()=>{e.forEach((()=>{l()}))}))}}))}))}))}}},25373:function(e,t,i){var n=this&&this.__createBinding||(Object.create?function(e,t,i,n){void 0===n&&(n=i);var s=Object.getOwnPropertyDescriptor(t,i);s&&!("get"in s?!t.__esModule:s.writable||s.configurable)||(s={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,n,s)}:function(e,t,i,n){void 0===n&&(n=i),e[n]=t[i]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.prototype.hasOwnProperty.call(e,i)&&n(t,e,i);return s(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.InteractScreen=void 0;const o=i(84283),r=a(i(58687)),l=i(20825),u=i(94433),d=i(23360);class h extends o.Screen{text;text2;textContainer=new r.Container;textContainerContainer=new r.Container;introTrack;clickSound;clickArea=new r.Graphics;constructor(e,t){super(),this.introTrack=e,this.clickSound=t,this.text=new r.Text({text:"Click anywhere to play!",style:{fontFamily:"TorusRegular",fontSize:36,fill:"white"}}),this.text2=new r.Text({text:"(this is for enabling audio because it's required by web-browsers\n to have interaction on this webpage before playing audio.)",style:{fontFamily:"TorusRegular",fontSize:26,fill:"gray",align:"center"}})}start(){this.text.anchor.set(.5,.5),this.text2.anchor.set(.5,.5),this.text2.position.set(0,this.text.height+15),this.textContainer.addChild(this.text),this.textContainer.addChild(this.text2),this.textContainer.scale.set(.5),this.textContainer.alpha=0,this.textContainerContainer.addChild(this.textContainer),this.textContainerContainer.scale=o.Screen.getScaleBasedOffScreenSize(),this.textContainerContainer.position.set(this.getScreenWidth()/2,this.getScreenHeight()/2),this.addChild(this.textContainerContainer),this.clickArea.rect(0,0,1,1),this.clickArea.fill("rgba(0,0,0,0)"),this.clickArea.width=this.getScreenWidth(),this.clickArea.height=this.getScreenHeight(),this.clickArea.position.set(0,0),this.addChild(this.clickArea),this.clickArea.eventMode="static",this.clickArea.cursor="pointer";const e=()=>{this.clickArea.eventMode="none",l.Main.AudioEngine.PlayEffect(this.clickSound),l.Main.switchScreen(new u.IntroScreen(this.introTrack)),document.body.style.cursor="none",l.Main.pointerLock()};this.clickArea.onclick=()=>{e()},this.clickArea.ontap=()=>{e()},d.ease.add(this.textContainer,{alpha:1,scale:1},{duration:400,ease:"easeOutQuad"})}onClose(){return new Promise((e=>{d.ease.add(this.textContainer,{alpha:0,scale:.5},{duration:200,ease:"easeInOutQuad"}),setTimeout((()=>{e(this)}),200)}))}draw(e){}onResize(){this.textContainerContainer.position.set(this.getScreenWidth()/2,this.getScreenHeight()/2),this.clickArea.width=this.getScreenWidth(),this.clickArea.height=this.getScreenHeight(),this.clickArea.position.set(0,0),this.textContainerContainer.scale=o.Screen.getScaleBasedOffScreenSize()}}t.InteractScreen=h},88662:function(e,t,i){var n=this&&this.__createBinding||(Object.create?function(e,t,i,n){void 0===n&&(n=i);var s=Object.getOwnPropertyDescriptor(t,i);s&&!("get"in s?!t.__esModule:s.writable||s.configurable)||(s={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,n,s)}:function(e,t,i,n){void 0===n&&(n=i),e[n]=t[i]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.prototype.hasOwnProperty.call(e,i)&&n(t,e,i);return s(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.GlitchingTriangles=void 0;const o=a(i(58687)),r=i(92915),l=a(i(29172));class u extends o.Container{constructor(e){super();let t=new o.Graphics,i=n(.2,1.2);function n(e,t){return Math.random()*(t-e)+e}t.moveTo(0,0),t.lineTo(-50*i,100*i),t.lineTo(50*i,100*i),t.lineTo(0,0),Math.random()<.5?t.fill("white"):t.stroke({color:"white",width:1});let s=n(e.x1,e.x2),a=n(e.y1,e.y2);t.position.set(s,a),r.Ease.getEase(t,!0).FadeOut(200,l.Easing.Linear.None),setTimeout((()=>{this.destroy()}),200),this.addChild(t)}}t.GlitchingTriangles=u},94433:function(e,t,i){var n=this&&this.__createBinding||(Object.create?function(e,t,i,n){void 0===n&&(n=i);var s=Object.getOwnPropertyDescriptor(t,i);s&&!("get"in s?!t.__esModule:s.writable||s.configurable)||(s={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,n,s)}:function(e,t,i,n){void 0===n&&(n=i),e[n]=t[i]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.prototype.hasOwnProperty.call(e,i)&&n(t,e,i);return s(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.IntroScreen=void 0;const o=i(84283),r=a(i(58687)),l=i(53931),u=i(20825),d=i(88662),h=i(23360),c=i(58940),g=i(55402),f=i(9752);class p extends o.Screen{introTrackUrl;doTextSpacingAnim=!1;triangles=new r.Container;ruleSetContainer=new r.Container;flash=new r.Graphics;logoContainerContainer=new r.Container;logoContainer=new r.Container;lazerLogo=new g.LazerLogo;flashed=!1;mainMenu;standard=r.Sprite.from("icon_ruleset_std");taiko=r.Sprite.from("icon_ruleset_taiko");ctb=r.Sprite.from("icon_ruleset_ctb");mania=r.Sprite.from("icon_ruleset_mania");welcomeText=new r.Text({text:"",style:{fontFamily:"TorusThin",fontSize:42,fill:"white",letterSpacing:5}});constructor(e){super(),this.introTrackUrl=URL.createObjectURL(e)}start(){this.lazerLogo.scale.set(o.Screen.getScaleBasedOffScreenSize()),this.logoContainer.addChild(this.lazerLogo),this.logoContainer.scale.set(1.2),this.logoContainerContainer.position.set(this.getScreenWidth()/2,this.getScreenHeight()/2),this.logoContainerContainer.pivot.set(.5,.5),this.logoContainerContainer.addChild(this.logoContainer),this.flash.rect(0,0,1,1),this.flash.fill("white"),this.flash.position.set(0,0),this.flash.width=this.getScreenWidth(),this.flash.height=this.getScreenHeight(),this.flash.blendMode="add",this.welcomeText.anchor.set(.5,.5),this.welcomeText.position.set(this.getScreenWidth()/2,this.getScreenHeight()/2),setTimeout((async()=>{const{entries:e}=await(0,l.unzip)(this.introTrackUrl);for(const[t,i]of Object.entries(e))if(t.endsWith(".osu")){i.text().then((t=>{let i=f.BeatmapParser.Parse(t);console.log(i);for(const[t,n]of Object.entries(e))t==i.General.AudioFileName&&n.arrayBuffer().then((e=>u.Main.AudioEngine.audioContext.decodeAudioData(e))).then((e=>{u.Main.AudioEngine.PlayMusicImmediately(e,i,(()=>{this.afterAudioPlay(),this.mainMenu=new c.MainMenu}))}))}));break}}),0)}afterAudioPlay(){let e;this.welcomeText.scale.set(o.Screen.getScaleBasedOffScreenSize()),this.addChild(this.welcomeText),setTimeout((()=>{this.welcomeText.text="wel",this.onResize()}),200),setTimeout((()=>{this.welcomeText.text="welcome",this.onResize()}),400),setTimeout((()=>{this.welcomeText.text="welcome to",this.onResize()}),700),this.triangles.position.set(this.getScreenWidth()/2,this.getScreenHeight()/2),this.triangles.scale.set(o.Screen.getScaleBasedOffScreenSize()),this.addChild(this.triangles),setTimeout((()=>{this.welcomeText.text="welcome to kosu!",this.doTextSpacingAnim=!0,e=setInterval((()=>{let e=new d.GlitchingTriangles({x1:-this.welcomeText.width/2-100,x2:this.welcomeText.width/2+100,y1:-this.welcomeText.height/2-150,y2:this.welcomeText.height/2+100});this.triangles.addChild(e)}),30),this.onResize()}),900),this.standard.anchor.set(.5,.5),this.standard.scale.set(.4*o.Screen.getScaleBasedOffScreenSize()),this.ruleSetContainer.addChild(this.standard),this.taiko.anchor.set(.5,.5),this.taiko.scale.set(.4*o.Screen.getScaleBasedOffScreenSize()),this.ruleSetContainer.addChild(this.taiko),this.ctb.anchor.set(.5,.5),this.ctb.scale.set(.4*o.Screen.getScaleBasedOffScreenSize()),this.ruleSetContainer.addChild(this.ctb),this.mania.anchor.set(.5,.5),this.mania.scale.set(.4*o.Screen.getScaleBasedOffScreenSize()),this.ruleSetContainer.addChild(this.mania),setTimeout((()=>{this.doTextSpacingAnim=!1,this.onResize(),clearInterval(e),this.welcomeText.destroy(),this.triangles.destroy(),this.ruleSetContainer.position.set(this.getScreenWidth()/2,this.getScreenHeight()/2),this.addChild(this.ruleSetContainer);this.standard.position.set(-375*o.Screen.getScaleBasedOffScreenSize(),0),this.taiko.position.set(-125*o.Screen.getScaleBasedOffScreenSize(),0),this.ctb.position.set(125*o.Screen.getScaleBasedOffScreenSize(),0),this.mania.position.set(375*o.Screen.getScaleBasedOffScreenSize(),0),h.ease.add(this.ruleSetContainer,{scale:.8},{duration:1e3,ease:"linear"})}),1450),setTimeout((()=>{this.standard.position.set(-240*o.Screen.getScaleBasedOffScreenSize(),0),this.taiko.position.set(-75*o.Screen.getScaleBasedOffScreenSize(),0),this.ctb.position.set(75*o.Screen.getScaleBasedOffScreenSize(),0),this.mania.position.set(240*o.Screen.getScaleBasedOffScreenSize(),0),this.standard.scale.set(o.Screen.getScaleBasedOffScreenSize()),this.taiko.scale.set(o.Screen.getScaleBasedOffScreenSize()),this.ctb.scale.set(o.Screen.getScaleBasedOffScreenSize()),this.mania.scale.set(o.Screen.getScaleBasedOffScreenSize())}),1650),setTimeout((()=>{this.standard.position.set(-350*o.Screen.getScaleBasedOffScreenSize(),0),this.taiko.position.set(-120*o.Screen.getScaleBasedOffScreenSize(),0),this.ctb.position.set(120*o.Screen.getScaleBasedOffScreenSize(),0),this.mania.position.set(350*o.Screen.getScaleBasedOffScreenSize(),0),this.standard.scale.set(2*o.Screen.getScaleBasedOffScreenSize()),this.taiko.scale.set(2*o.Screen.getScaleBasedOffScreenSize()),this.ctb.scale.set(2*o.Screen.getScaleBasedOffScreenSize()),this.mania.scale.set(2*o.Screen.getScaleBasedOffScreenSize()),h.ease.add(this.ruleSetContainer,{scale:1.3},{duration:1e3,ease:"linear"})}),1850),setTimeout((()=>{this.ruleSetContainer.visible=!1,this.lazerLogo.start(),this.addChild(this.logoContainerContainer),this.logoContainerContainer.scale.set(1.2),h.ease.add(this.logoContainerContainer,{scale:1},{duration:920,ease:"easeInQuad"}),setTimeout((()=>{h.ease.add(this.logoContainer,{scale:1.2-.8},{duration:276,ease:"easeInQuint"})}),644)}),2080),setTimeout((()=>{this.addChild(this.flash),this.flash.eventMode="none",this.flashed=!0,this.logoContainerContainer.visible=!1,h.ease.add(this.flash,{alpha:0},{duration:1e3,ease:"easeOutQuad"}),null==this.mainMenu&&(this.mainMenu=new c.MainMenu),u.Main.switchScreen(this.mainMenu),u.Main.cursor.PopIn()}),3e3)}draw(e){this.doTextSpacingAnim&&(this.welcomeText.style.letterSpacing+=.15*e.deltaTime,this.onResize())}onClose(){return new Promise((e=>{setTimeout((()=>{e(this)}),1e3)}))}onResize(){this.welcomeText.destroyed||this.welcomeText.position.set(this.getScreenWidth()/2,this.getScreenHeight()/2),this.triangles.destroyed||(this.triangles.position.set(this.getScreenWidth()/2,this.getScreenHeight()/2),this.triangles.scale.set(o.Screen.getScaleBasedOffScreenSize())),this.ruleSetContainer.destroyed||this.ruleSetContainer.position.set(this.getScreenWidth()/2,this.getScreenHeight()/2),!this.flash.destroyed&&this.flashed&&(this.flash.position.set(0,0),this.flash.width=this.getScreenWidth(),this.flash.height=this.getScreenHeight()),this.logoContainerContainer.destroyed||this.logoContainerContainer.position.set(this.getScreenWidth()/2,this.getScreenHeight()/2),this.lazerLogo.destroyed||this.lazerLogo.scale.set(o.Screen.getScaleBasedOffScreenSize()),this.welcomeText.destroyed||this.welcomeText.scale.set(o.Screen.getScaleBasedOffScreenSize()),this.standard.destroyed||this.standard.scale.set(.4*o.Screen.getScaleBasedOffScreenSize()),this.mania.destroyed||this.mania.scale.set(.4*o.Screen.getScaleBasedOffScreenSize()),this.ctb.destroyed||this.ctb.scale.set(.4*o.Screen.getScaleBasedOffScreenSize()),this.taiko.destroyed||this.taiko.scale.set(.4*o.Screen.getScaleBasedOffScreenSize())}}t.IntroScreen=p},55402:function(e,t,i){var n=this&&this.__createBinding||(Object.create?function(e,t,i,n){void 0===n&&(n=i);var s=Object.getOwnPropertyDescriptor(t,i);s&&!("get"in s?!t.__esModule:s.writable||s.configurable)||(s={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,n,s)}:function(e,t,i,n){void 0===n&&(n=i),e[n]=t[i]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.prototype.hasOwnProperty.call(e,i)&&n(t,e,i);return s(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.LazerLogo=void 0;const o=a(i(58687)),r=i(23360),l=i(87525);class u extends o.Container{highlight;background;textureHighlight=o.Texture.from("intro_triangles_osuLogo_anim_highlight");textureBackground=o.Texture.from("intro_triangles_osuLogo_anim_background");constructor(){super(),this.highlight=new l.LogoAnimation(this.textureHighlight,new o.Color("white")),this.background=new l.LogoAnimation(this.textureBackground,new o.Color("rgb(128, 128, 128)"))}start(){this.addChild(this.highlight),this.addChild(this.background);let e=new o.Container;e.scale.set(0,0),r.ease.add(e,{scale:1},{duration:920,ease:"linear"}).on("each",(()=>{this.highlight.setProgress(e.scale.x),this.background.setProgress(e.scale.x)}))}}t.LazerLogo=u},87525:function(e,t,i){var n=this&&this.__createBinding||(Object.create?function(e,t,i,n){void 0===n&&(n=i);var s=Object.getOwnPropertyDescriptor(t,i);s&&!("get"in s?!t.__esModule:s.writable||s.configurable)||(s={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,n,s)}:function(e,t,i,n){void 0===n&&(n=i),e[n]=t[i]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.prototype.hasOwnProperty.call(e,i)&&n(t,e,i);return s(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.LogoAnimation=void 0;const o=a(i(58687)),r=i(12235);class l extends o.Container{shader;texture;constructor(e,t){super(),this.texture=e;const i=r.Loader.GetString("webgl:shaders/logoAnimation.frag"),n=r.Loader.GetString("webgl:shaders/logoAnimation.vert");this.shader=o.Shader.from({gl:{vertex:n,fragment:i},resources:{uTexture:this.texture.source,uProgress:{progress:{value:0,type:"f32"}}}});const s=new o.Geometry({attributes:{aPosition:[-this.texture.width/2,-this.texture.height/2,this.texture.width/2,-this.texture.height/2,this.texture.width/2,this.texture.width/2,-this.texture.width/2,this.texture.width/2],aUV:[0,0,1,0,1,1,0,1],aColor:[t.red,t.green,t.blue,t.alpha,t.red,t.green,t.blue,t.alpha,t.red,t.green,t.blue,t.alpha,t.red,t.green,t.blue,t.alpha]},indexBuffer:[0,1,2,0,2,3]}),a=new o.Mesh({geometry:s,shader:this.shader});this.addChild(a)}setProgress(e){this.shader.resources.uProgress.uniforms.progress=e}}t.LogoAnimation=l},76969:function(e,t,i){Object.defineProperty(t,"__esModule",{value:!0}),t.LoadScreen=void 0;const n=i(84283),s=i(49323);class a extends n.Screen{loadAnim=new s.LoadAnim("rgba(255,255,255,0.7)","black");start(){this.loadAnim.scale.set(.8*n.Screen.getScaleBasedOffScreenSize()),this.loadAnim.position.set(this.getScreenWidth()-this.loadAnim.getWidth()-15,this.getScreenHeight()-this.loadAnim.getHeight()-15),this.addChild(this.loadAnim)}draw(e){this.loadAnim?.draw(e)}onClose(){return new Promise((e=>{null!=this.loadAnim&&this.loadAnim.destroy(),setTimeout((()=>{e(this)}),400)}))}onResize(){this.loadAnim.position.set(this.getScreenWidth()-this.loadAnim.getWidth()-20,this.getScreenHeight()-this.loadAnim.getHeight()-20),this.loadAnim.scale.set(.8*n.Screen.getScaleBasedOffScreenSize())}}t.LoadScreen=a},58940:function(e,t,i){Object.defineProperty(t,"__esModule",{value:!0}),t.MainMenu=void 0;const n=i(84283),s=i(36721),a=i(54349);class o extends n.Screen{bg=new s.RandomBackground;osuCircle=new a.OsuCircle;start(){this.bg.start(),this.addChild(this.bg),this.osuCircle.scale=n.Screen.getScaleBasedOffScreenSize(),this.addChild(this.osuCircle)}draw(e){this.bg.draw(e),this.osuCircle.draw(e)}onClose(){return new Promise((e=>{this.bg.onClose().then((()=>{e(this)}))}))}onResize(){this.osuCircle.position.set(this.getScreenWidth()/2,this.getScreenHeight()/2),this.bg.onResize(),this.osuCircle.onResize(),this.osuCircle.scale=n.Screen.getScaleBasedOffScreenSize()}}t.MainMenu=o},84283:function(e,t,i){var n=this&&this.__createBinding||(Object.create?function(e,t,i,n){void 0===n&&(n=i);var s=Object.getOwnPropertyDescriptor(t,i);s&&!("get"in s?!t.__esModule:s.writable||s.configurable)||(s={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,n,s)}:function(e,t,i,n){void 0===n&&(n=i),e[n]=t[i]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.prototype.hasOwnProperty.call(e,i)&&n(t,e,i);return s(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.Screen=void 0;const o=a(i(58687)),r=i(58293),l=i(64681);class u extends o.Container{constructor(){super()}static getScaleBasedOffScreenSize(){const e=r.Settings.getSetting(l.UIScale).getValue();return(window.innerWidth/1920+window.innerHeight/1080)/2*e}getScreenWidth(){return window.innerWidth}getScreenHeight(){return window.innerHeight}}t.Screen=u},75341:function(e,t,i){Object.defineProperty(t,"__esModule",{value:!0}),t.SettingsCategory=t.Setting=void 0;const n=i(58293);var s;t.Setting=class{constructor(e){n.Settings.register({setting:this,info:e})}},function(e){e.General="General",e.Skin="Skin",e.Input="Input",e.UserInterface="User Interface",e.Gameplay="Gameplay",e.Rulesets="Rulesets",e.Audio="Audio",e.Graphics="Graphics",e.Online="Online",e.Maintenance="Maintenance",e.Debug="Debug"}(s||(t.SettingsCategory=s={}))},74975:function(e,t,i){Object.defineProperty(t,"__esModule",{value:!0}),t.DropdownSetting=void 0;const n=i(75341),s=i(58293);class a extends n.Setting{value;getValue(){if(!this.value)throw new Error("Value is undefined!");return this.value}getDefaultValue(){return this.defaultValue}setValue(e){this.list.find((t=>t.value==e.value&&t.displayName==e.displayName))?(this.value=e,s.Settings.save()):console.warn("The value provided to this DropDownSetting does not exist in the option list! Ignoring value provided.")}loadFromSaveValue(e){this.list.find((t=>t.value==e.value&&t.displayName==e.displayName))?this.value=e:console.warn("The value provided to this DropDownSetting does not exist in the option list! Ignoring value provided.")}}t.DropdownSetting=a},78642:function(e,t,i){Object.defineProperty(t,"__esModule",{value:!0}),t.RangeSetting=void 0;const n=i(75341),s=i(58293),a=i(5825);class o extends n.Setting{value=0;getValue(){return this.value}getDefaultValue(){return this.defaultValue}setValue(e){this.value=a.MathUtil.clamp(this.minValue,this.maxValue,e),s.Settings.save()}loadFromSaveValue(e){this.value=a.MathUtil.clamp(this.minValue,this.maxValue,e)}}t.RangeSetting=o},58293:function(e,t,i){Object.defineProperty(t,"__esModule",{value:!0}),t.Settings=void 0;const n=i(64681),s=i(44256);t.Settings=class{static settingsList=[];static registerAll(){new n.UIScale,new s.Renderer}static load(){let e=window.localStorage.getItem("settings");if(null==e)return;let t=this.getList();try{JSON.parse(e).forEach((e=>{let i=!1;try{e.value||(console.warn("Setting '"+JSON.stringify(e)+"' may be corrupted, skipping!"),i=!0),e.info?(e.info.name||(console.warn("Setting '"+JSON.stringify(e)+"' may be corrupted, skipping!"),i=!0),e.info.category||(console.warn("Setting '"+JSON.stringify(e)+"' may be corrupted, skipping!"),i=!0)):(console.warn("Setting '"+JSON.stringify(e)+"' may be corrupted, skipping!"),i=!0)}catch(e){console.warn("Something went wrong when validating saved settings!",e),console.warn("The setting may be REALLY corrupted, skipping!"),i=!0}if(!i){let i=t.filter((t=>t.info.name==e.info.name&&t.info.category==e.info.category))[0];i?i.setting.loadFromSaveValue(e.value):console.warn("Could not find setting object '"+e.info.name+"', maybe it has been removed in this version of kosu?, skipping setting")}}))}catch(e){console.warn("Failed to load settings! Resetting Settings due to corrupted save!",e),this.reset()}}static save(){let e=this.getList(),t=[];e.forEach((e=>{e.setting.getValue()!=e.setting.getDefaultValue()&&t.push({info:e.info,value:e.setting.getValue()})})),window.localStorage.setItem("settings",JSON.stringify(t))}static reset(){console.warn("Resetting Settings!"),window.localStorage.removeItem("settings")}static register(e){this.settingsList.push(e)}static getSetting(e){return this.settingsList.filter((t=>t.setting instanceof e))[0].setting}static getSettingData(e){return this.settingsList.filter((t=>t.setting instanceof e))[0]}static getList(){return this.settingsList}}},44256:function(e,t,i){Object.defineProperty(t,"__esModule",{value:!0}),t.Renderer=void 0;const n=i(75341),s=i(74975);class a extends s.DropdownSetting{list=[];webglOption={displayName:"WebGL",value:"webgl"};defaultValue=this.webglOption;constructor(){super({name:"Renderer",category:n.SettingsCategory.Graphics}),this.value=this.defaultValue}}t.Renderer=a},64681:function(e,t,i){Object.defineProperty(t,"__esModule",{value:!0}),t.UIScale=void 0;const n=i(78642),s=i(75341);class a extends n.RangeSetting{maxValue=.8;minValue=1.6;increment=.1;defaultValue=1;constructor(){super({name:"UI scaling",category:s.SettingsCategory.Graphics}),this.value=this.defaultValue}}t.UIScale=a},17898:function(e,t,i){Object.defineProperty(t,"__esModule",{value:!0}),t.BeatmapData=void 0;const n=i(85932),s=i(20352),a=i(32007),o=i(78878),r=i(54611),l=i(6386),u=i(43354);t.BeatmapData=class{General=new n.GeneralData;Editor=new s.EditorData;Metadata=new a.Metadata;Difficulty=new o.DifficultyData;Events=new r.EventsData;TimingPoints=new l.TimingPointsData;Colors=new u.ColorsData}},43354:function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.ColorsData=void 0;t.ColorsData=class{Colors=[]}},78878:function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.DifficultyData=void 0;t.DifficultyData=class{HPDrainRate;CircleSize;OverallDifficulty;ApproachRate;SliderMultiplier;SliderTickRate}},20352:function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.EditorData=void 0;t.EditorData=class{Bookmarks=[];DistanceSpacing;BeatDivisor;GridSize;TimelineZoom}},54611:function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.EventsData=void 0;t.EventsData=class{Events=[]}},37940:function(e,t){var i;Object.defineProperty(t,"__esModule",{value:!0}),t.Countdown=void 0,function(e){e[e.NoCountdown=0]="NoCountdown",e[e.Normal=1]="Normal",e[e.Half=2]="Half",e[e.Double=3]="Double"}(i||(t.Countdown=i={}))},85932:function(e,t,i){Object.defineProperty(t,"__esModule",{value:!0}),t.GeneralData=void 0;const n=i(37940),s=i(41080),a=i(90857),o=i(45274);t.GeneralData=class{AudioFileName;AudioLeadIn=0;AudioHash;PreviewTime=-1;Countdown=n.Countdown.Normal;SampleSet=s.SampleSet.Normal;StackLeniency=.7;Mode=a.Mode.OSU;LetterboxInBreaks=!1;StoryFireInFront=!0;UseSkinSprites=!1;AlwaysShowPlayfield=!1;OverlayPosition=o.OverlayPosition.NoChange;SkinPreference;EpilepsyWarning=!1;CountdownOffset=0;SpecialStyle=!1;WidescreenStoryboard=!1;SamplesMatchPlaybackRate=!1}},90857:function(e,t){var i;Object.defineProperty(t,"__esModule",{value:!0}),t.Mode=void 0,function(e){e[e.OSU=0]="OSU",e[e.TAIKO=1]="TAIKO",e[e.CATCH=2]="CATCH",e[e.MANIA=3]="MANIA"}(i||(t.Mode=i={}))},45274:function(e,t){var i;Object.defineProperty(t,"__esModule",{value:!0}),t.OverlayPosition=void 0,function(e){e.NoChange="NoChange",e.Below="Below",e.Above="Above"}(i||(t.OverlayPosition=i={}))},41080:function(e,t){var i;Object.defineProperty(t,"__esModule",{value:!0}),t.SampleSet=void 0,function(e){e.Normal="Normal",e.Soft="Soft",e.Drum="Drum"}(i||(t.SampleSet=i={}))},32007:function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.Metadata=void 0;t.Metadata=class{Title;TitleUnicode;Artist;ArtistUnicode;Creator;Version;Source;Tags;BeatmapID;BeatmapSetID}},22331:function(e,t){var i;Object.defineProperty(t,"__esModule",{value:!0}),t.Effect=void 0,function(e){e[e.KiaiTime=1]="KiaiTime",e[e.None=0]="None",e[e.FirstBarLineOmittedInOsuTaikoAndOsuMania=3]="FirstBarLineOmittedInOsuTaikoAndOsuMania"}(i||(t.Effect=i={}))},3143:function(e,t,i){Object.defineProperty(t,"__esModule",{value:!0}),t.InheritedTimingPoint=void 0;const n=i(52032);class s extends n.TimingPoint{sliderVelocityMultiplier}t.InheritedTimingPoint=s},52032:function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.TimingPoint=void 0;t.TimingPoint=class{time;sampleSet;sampleIndex;volume;effects}},6386:function(e,t,i){Object.defineProperty(t,"__esModule",{value:!0}),t.TimingPointsData=void 0;const n=i(87816),s=i(3143);t.TimingPointsData=class{TimingPoints=[];GetCurrentTimingPoints(e){let t=[],i=this.TimingPoints.filter((t=>{if(t.time<=e)return t}));if(0==i.length&&i.push(this.TimingPoints[0]),t.push(i[i.length-1]),t[0]instanceof s.InheritedTimingPoint){let i=this.TimingPoints.filter((e=>e instanceof n.UnInheritedTimingPoint)).filter((t=>{if(t.time<=e)return t}));if(0==i.length)throw new Error("Could not find a parent timing point for the un-inherited timing point!");t.push(i[i.length-1])}if(0==t.length)throw new Error("Could not find any timing points!");return t}GetCurrentUninheritedTimingPoint(e){let t,i=this.GetCurrentTimingPoints(e);if(i[0]instanceof n.UnInheritedTimingPoint)t=i[0];else{if(!(i[1]instanceof n.UnInheritedTimingPoint))throw new Error("Could not find any UnInherited Timing Points!");t=i[1]}return t}}},87816:function(e,t,i){Object.defineProperty(t,"__esModule",{value:!0}),t.UnInheritedTimingPoint=void 0;const n=i(52032);class s extends n.TimingPoint{beatLength;meter}t.UnInheritedTimingPoint=s},9752:function(e,t,i){Object.defineProperty(t,"__esModule",{value:!0}),t.BeatmapParser=void 0;const n=i(17898),s=i(30444),a=i(81347);class o{static Parse(e,t){const i=new n.BeatmapData;let r=e.split(/\r?\n|\r|\n/g);return a.GeneralParser.ParseGeneral(i,o.GetSection("General",r)),s.TimingPointsParser.ParseTimingPoints(i,o.GetSection("TimingPoints",r)),i}static GetSection(e,t){let i=[];return t.forEach(((n,s)=>{if(n=="["+e+"]")for(let e=s+1;e{let i=t.split(":");"AudioFilename"==i[0]&&(i[1].startsWith(" ")?e.General.AudioFileName=i[1].substring(1,i[1].length):e.General.AudioFileName=i[1]),"AudioFilename"==i[0]&&(i[1].startsWith(" ")?e.General.AudioFileName=i[1].substring(1,i[1].length):e.General.AudioFileName=i[1])}))}}},30444:function(e,t,i){Object.defineProperty(t,"__esModule",{value:!0}),t.TimingPointsParser=void 0;const n=i(87816),s=i(3143),a=i(22331);t.TimingPointsParser=class{static ParseTimingPoints(e,t){t.forEach((t=>{let i,o=t.split(",");"1"==o[6]?(i=new n.UnInheritedTimingPoint,i.beatLength=Number.parseFloat(o[1]),i.meter=Number.parseInt(o[2])):(i=new s.InheritedTimingPoint,i.sliderVelocityMultiplier=Number.parseFloat(o[1])),i.time=Number.parseInt(o[0]),i.sampleSet=Number.parseInt(o[3]),i.sampleIndex=Number.parseInt(o[4]),i.volume=Number.parseInt(o[5]),"1"==o[7]||"3"==o[7]?i.effects=Number.parseInt(o[7]):i.effects=a.Effect.None,e.TimingPoints.TimingPoints.push(i)}))}}},5825:function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.MathUtil=void 0;class i{static RadiansToDegrees(e){return 180*e/Math.PI}static DegreesToRadians(e){return e*Math.PI/180}static clamp(e,t,i){return Math.min(Math.max(i,e),t)}static clamp01(e){return i.clamp(0,1,e)}static Damp(e,t,n,s){return i.Lerp(e,t,1-Math.pow(n,s))}static Lerp(e,t,i){return e+(t-e)*i}}t.MathUtil=i},92915:function(e,t,i){var n=this&&this.__createBinding||(Object.create?function(e,t,i,n){void 0===n&&(n=i);var s=Object.getOwnPropertyDescriptor(t,i);s&&!("get"in s?!t.__esModule:s.writable||s.configurable)||(s={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,n,s)}:function(e,t,i,n){void 0===n&&(n=i),e[n]=t[i]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.prototype.hasOwnProperty.call(e,i)&&n(t,e,i);return s(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.Ease=void 0;const o=a(i(29172));class r{static previousEases=[];easings=[];obj;delay=null;constructor(e,t){this.obj=e,t||r.previousEases.push(this)}static getEase(e,t){null==t&&(t=!1);let i=r.previousEases.filter((t=>t.obj==e));return i.length>0?i[0]:new r(e,t)}createTween(e,t,i,n,s,a){const r={value:0},l=new o.Tween(i?r:e);return l.to(i?{value:1}:t,s),l.easing(a),l.onUpdate((()=>{this.obj[n]=i?r.value*(t.value-e.value)+e.value:e})),l.onStart((()=>{i&&(e.value=this.obj[n])})),null==this.delay?l.start():(this.delay.chain(l),this.delay=null),this.easings.push({tween:l}),l.onStop((()=>{this.onDone(l)})),l.onComplete((()=>{this.onDone(l)})),this}TransformTo(e,t,i){return this.createTween(this.obj.position,e,!1,"position",t,i),this}onDone(e){this.easings=this.easings.filter((t=>t.tween!=e))}ScaleTo(e,t,i){let n={x:0,y:0};return"number"==typeof e&&(n.x=e,n.y=e),this.createTween(this.obj.scale,n,!1,"scale",t,i),this}FadeTo(e,t,i){return this.createTween({value:this.obj.alpha},{value:e},!0,"alpha",t,i),this}FadeOut(e,t){return this.FadeTo(0,e,t),this}FadeIn(e,t){return this.FadeTo(1,e,t),this}ClearEasings(){return this.easings.forEach((e=>{e.tween.stop()})),this.easings=[],this}Then(e){let t=this.easings.sort(((e,t)=>e.tween.getDuration()-t.tween.getDuration()));return t.length>0&&(this.delay=t[0].tween,null!=e&&(t[0].tween.onComplete((()=>{this.onDone(t[0].tween),e()})),t[0].tween.onStop((()=>{this.onDone(t[0].tween),e()})))),this}}t.Ease=r},29820:function(e,t,i){i(11307);const n=i(58687),s=i(20825),a=i(58293),o=i(44256);a.Settings.registerAll();const r=window.innerWidth,l=window.innerHeight,u=new n.Application;window.onload=async()=>{const e=a.Settings.getSetting(o.Renderer).getValue().value;u.init({backgroundColor:"black",width:r,height:l,antialias:!0,preference:e,resolution:window.devicePixelRatio,autoDensity:!0}).then((()=>{new s.Main(u)}))},Object.defineProperty(window,"setSensitivity",{value:e=>{n.EventSystem.cursorSensitivity=e}})},20825:function(e,t,i){var n=this&&this.__createBinding||(Object.create?function(e,t,i,n){void 0===n&&(n=i);var s=Object.getOwnPropertyDescriptor(t,i);s&&!("get"in s?!t.__esModule:s.writable||s.configurable)||(s={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,n,s)}:function(e,t,i,n){void 0===n&&(n=i),e[n]=t[i]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.prototype.hasOwnProperty.call(e,i)&&n(t,e,i);return s(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.Main=void 0;const o=a(i(58687)),r=i(76969),l=i(25373),u=i(12235),d=i(55686),h=i(85437),c=a(i(29172));class g{static app;static mousePos={x:0,y:0};static pointerLockExitTime;static cursor;static AudioEngine;static currentScreen;static allScreens=[];static clickArea=new o.Graphics;static doPointerLock=!1;constructor(e){g.app=e,document.body.appendChild(g.app.canvas),this.doResize(),window.addEventListener("resize",this.doResize),g.app.ticker.add((()=>{c.update()})),g.app.stage.eventMode="static",g.AudioEngine=new h.AudioEngine,g.app.stage.addEventListener("mousemove",(e=>{g.mousePos.x=e.clientX,g.mousePos.y=e.clientY,g.cursor&&g.cursor.updateMouse()})),document.addEventListener("pointerlockchange",this.pointerLockChanged,!1),g.switchScreen(new r.LoadScreen),u.Loader.Load(g.AudioEngine.audioContext).then((()=>{g.cursor=new d.MenuCursor(!1);let e=u.Loader.GetAudio("sample_dialog_ok"),t=u.Loader.Get("introTrianglesTrack");g.switchScreen(new l.InteractScreen(t,e))}))}static pointerLock(){try{this.doPointerLock=!0,g.app.canvas.requestPointerLock({unadjustedMovement:!0})}catch(e){console.warn("Failed to lock cursor, error:",e),this.doPointerLock=!1}}static exitPointerLock(){this.doPointerLock=!1,g.app.canvas.exitPointerLock()}static switchScreen(e){null!=this.currentScreen&&(this.currentScreen.zIndex=1,this.currentScreen.onClose().then((e=>{for(let t=0;t{e.onResize()}))}pointerLockChanged(){!document.pointerLockElement&&g.doPointerLock?(o.EventSystem.isPointerLocked=!1,g.pointerLockExitTime=Date.now(),g.clickArea=new o.Graphics,g.clickArea.rect(0,0,1,1),g.clickArea.fill("rgba(0,0,0,0.1)"),g.clickArea.width=window.innerWidth,g.clickArea.height=window.innerHeight,g.clickArea.position.set(0,0),g.app.stage.addChild(g.clickArea),g.clickArea.eventMode="static",g.clickArea.cursor="pointer",g.cursor.PopOut(),g.clickArea.zIndex=9999999,g.clickArea.onclick=()=>{Date.now()-g.pointerLockExitTime<1500||(g.clickArea.removeFromParent(),g.clickArea.destroy(),g.pointerLock(),g.cursor.PopIn())}):o.EventSystem.isPointerLocked=!0}}t.Main=g},11307:function(e,t,i){i.r(t)}},i={};function n(e){var s=i[e];if(void 0!==s)return s.exports;var a=i[e]={id:e,loaded:!1,exports:{}};return t[e].call(a.exports,a,a.exports,n),a.loaded=!0,a.exports}n.m=t,e=[],n.O=function(t,i,s,a){if(!i){var o=1/0;for(d=0;d=a)&&Object.keys(n.O).every((function(e){return n.O[e](i[l])}))?i.splice(l--,1):(r=!1,a0&&e[d-1][2]>a;d--)e[d]=e[d-1];e[d]=[i,s,a]},n.d=function(e,t){for(var i in t)n.o(t,i)&&!n.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),n.hmd=function(e){return(e=Object.create(e)).children||(e.children=[]),Object.defineProperty(e,"exports",{enumerable:!0,set:function(){throw new Error("ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: "+e.id)}}),e},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},function(){var e={179:0};n.O.j=function(t){return 0===e[t]};var t=function(t,i){var s,a,o=i[0],r=i[1],l=i[2],u=0;if(o.some((function(t){return 0!==e[t]}))){for(s in r)n.o(r,s)&&(n.m[s]=r[s]);if(l)var d=l(n)}for(t&&t(i);ukosu! \ No newline at end of file +kosu! \ No newline at end of file