var game;window.addEventListener("load",(function(){(game=new Phaser.Game({title:"BaseSlotGame",type:Phaser.AUTO,backgroundColor:"#000",scale:{mode:Phaser.Scale.FIT,parent:"game-container",autoCenter:Phaser.Scale.CENTER_BOTH,width:960,height:540},physics:{default:"arcade",arcade:{debug:!1}},plugins:{global:[NineSlice.Plugin.DefaultCfg],scene:[{key:"SpinePlugin",plugin:window.SpinePlugin,sceneKey:"spine"}]}})).events.on("hidden",()=>{console.log("hidden"),SoundManager.instance.pauseAllSFX(),SoundManager.instance.pauseAllBGM()},this),game.events.on("visible",()=>{console.log("visible"),SoundManager.instance.resumeAllSFX(),SoundManager.instance.resumeAllBGM()},this),game.events.on("blur",()=>{console.log("blur")},this),game.events.on("focus",()=>{console.log("focus")},this),game.sound.pauseOnBlur=!1,game.scene.add("Boot",Boot,!0)}));class Boot extends Phaser.Scene{preload(){this.isLoadComplete=!1;let s=Boot.getUrlVariables();this.language=s.lang,this.loadBootPack(),this.startProcessLoad()}create(){LoadingUI.init(this),onCheckFirstTime()}updateProgress(s){LoadingUI.updateProgress(s)}update(){}loadBootPack(){this.load.pack("pack_boot","assets/boot_pack.json"),this.load.start(),this.loadStudioLogo()}loadStudioLogo(){this.load.setPath("assets/spines/studio_logo/"),this.load.spine("studio_logo","logo-animate.json","logo-animate.atlas"),this.load.setPath()}startProcessLoad(){this.loadIndex=0,this.processLoad(this.loadIndex)}initEvent(){this.load.on("start",this.onStartLoad,this),this.load.on("progress",this.onUpdateProgress,this),this.load.on("load",this.onLoadFileCompleted,this),this.load.on("loaderror",this.onLoadFileFailed,this),this.load.on("complete",this.onLoadCompleted,this)}deinitEvent(){this.load.off("start",this.onStartLoad,this),this.load.off("progress",this.onUpdateProgress,this),this.load.off("load",this.onLoadFileCompleted,this),this.load.off("loaderror",this.onLoadFileFailed,this),this.load.off("complete",this.onLoadCompleted,this)}processLoad(s){switch(this.initEvent(),s){case 0:this.loadSystemAsset();break;case 1:this.loadBaseGameAsset(this.language);break;case 2:this.loadBonusGameAsset(this.language);break;default:this.onProcessLoadCompleted()}}loadSystemAsset(){{let s=["lib/socket.io-client/dist/socket.io.js","assets/scripts/managers/game_config.js","assets/scripts/managers/localize.js","assets/scripts/utilities/helper.js","assets/scripts/utilities/singleton.js","assets/scripts/utilities/enum.js","assets/scripts/managers/data_manager.js","assets/scripts/managers/server_manager.js","assets/scripts/sounds/sound_manager.js","assets/scripts/sounds/sound_object.js","assets/scripts/uis/scene_object.js","assets/scripts/uis/reel_object.js","assets/scripts/uis/button_object.js","assets/scripts/uis/toggle_object.js","assets/scripts/uis/toggle_spine.js","assets/scripts/uis/paylinegroup_object.js","assets/scripts/uis/button_spin_object.js","assets/scripts/uis/progressbar_object.js","assets/scripts/uis/popup_notice.js","assets/scripts/uis/popup_intro.js","assets/scripts/uis/popup_network_stat.js","assets/scripts/uis/particle_ui.js","assets/scripts/debugs/input_debug.js"];this.load.scripts({key:"scripts",url:s})}this.load.start()}loadBaseGameAsset(s){{let s=["assets/scripts/uis/payout_ui.js","assets/scripts/uis/freespin_ui.js","assets/scripts/uis/popupwin_ui.js","assets/scripts/uis/popup_fivekind.js","assets/scripts/uis/popup_freespin.js"];this.load.scripts({key:"scripts",url:s})}switch(this.load.pack("pack","assets/pack.json"),this.load.pack("audio_pack","assets/audio_pack.json"),s){case"th":this.load.pack("pack_th","assets/pack_th.json");break;case"en":default:this.load.pack("pack_en","assets/pack_en.json")}this.load.setPath("assets/spines/symbols_animate/"),this.load.spine("symbol_10_animate","symbol_10_animate.json","symbols_animate.atlas"),this.load.spine("symbol_9_animate","symbol_9_animate.json","symbols_animate.atlas"),this.load.spine("symbol_a_animate","symbol_a_animate.json","symbols_animate.atlas"),this.load.spine("symbol_j_animate","symbol_j_animate.json","symbols_animate.atlas"),this.load.spine("symbol_k_animate","symbol_k_animate.json","symbols_animate.atlas"),this.load.spine("symbol_p1_animate","symbol_p1_animate.json","symbols_animate.atlas"),this.load.spine("symbol_p2_animate","symbol_p2_animate.json","symbols_animate.atlas"),this.load.spine("symbol_p3_animate","symbol_p3_animate.json","symbols_animate.atlas"),this.load.spine("symbol_p4_animate","symbol_p4_animate.json","symbols_animate.atlas"),this.load.spine("symbol_p5_animate","symbol_p5_animate.json","symbols_animate.atlas"),this.load.spine("symbol_q_animate","symbol_q_animate.json","symbols_animate.atlas"),this.load.spine("symbol_scatter_animate","symbol_scatter_animate.json","symbols_animate.atlas"),this.load.spine("symbol_wild_animate","symbol_wild_animate.json","symbols_animate.atlas"),this.load.setPath("assets/spines/reel_chance/"),this.load.spine("reel_chance","scatter_reel.json","win_highlight.atlas"),this.load.spine("symbol_win","win_highlight.json","win_highlight.atlas"),this.load.setPath(),this.load.start()}loadBonusGameAsset(s){this.load.setPath("assets/spines/bonus_ui"),this.load.spine("bonus_chest","symbol_treasure_animate.json","symbol_treasure_animate.atlas",!0),this.load.setPath(),this.load.start()}onStartLoad(){}onUpdateProgress(s){let a=(this.loadIndex+s-1)/2;this.updateProgress(a)}onLoadFileCompleted(s){}onLoadFileFailed(s){console.error("onLoadFileFailed : "+s.url)}onLoadCompleted(){this.deinitEvent(),this.loadIndex++,this.processLoad(this.loadIndex)}onProcessLoadCompleted(){console.log("onProcessLoadCompleted"),this.isLoadComplete=!0,ServerManager.instance.setupUrlVariables();try{let s=this.add.spine(1e6,1e6,"symbol_p1_animate","animate",!0),a=s.getCurrentAnimation();console.log("Animation Duration",a.duration),gameConfig.REEL_RESULT_DURATION=1e3*a.duration,s.destroy()}catch{console.error("Failed to init animation duration")}LoadingUI.waitForAnimationComplete(()=>{this.scene.launch(gameConfig.MAIN_SCENE),LoadingUI.clearLogoCache()})}static getUrlVariables(){let s={};return window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi,(a,o,e)=>{s[o]=e}),s}}class LoadingUI{static init(s){LoadingUI.bootscene=s,LoadingUI.createBg(),LoadingUI.createStudioLogo(),LoadingUI.createLoadBar(),LoadingUI.createPercentage()}static createBg(){if(0==LoadingUI.config.showBg)return;let s={x:.5*LoadingUI.bootscene.game.config.width,y:.5*LoadingUI.bootscene.game.config.height};LoadingUI._bg=LoadingUI.bootscene.add.image(s.x,s.y,"bg_promo")}static createStudioLogo(){if(0==LoadingUI.config.showLogo)return;LoadingUI._studioLogo=null,LoadingUI._isLogoShowComplete=!1,LoadingUI._loadLogoCache=[];let s={x:.5*LoadingUI.bootscene.game.config.width,y:270};LoadingUI._studioLogo=LoadingUI.bootscene.add.spine(s.x,s.y,"studio_logo","in",!1),LoadingUI._studioLogo.setScale(.5),Spine_OnCompleteCallback(LoadingUI._studioLogo,"in",()=>{LoadingUI._studioLogo.destroy(),LoadingUI._isLogoShowComplete=!0,LoadingUI._logoBg=LoadingUI.bootscene.add.image(s.x+.8,s.y,"logo_bg").setScale(.5),LoadingUI._progressLogo=LoadingUI.bootscene.add.image(s.x+.8,s.y,"logo_fill").setScale(.5),LoadingUI._maskShape=LoadingUI.bootscene.add.image(s.x-140+.8,s.y,"logo_fill").setScale(.5).setVisible(!1),LoadingUI._mask=LoadingUI._maskShape.createBitmapMask(),LoadingUI._progressLogo.setMask(LoadingUI._mask),LoadingUI._maskShape.setOrigin(0,.5),LoadingUI._maskShape.setDisplaySize(0,5e3),LoadingUI._maskShape.setTexture("util_white_fade"),LoadingUI._loadLogoCache.push(LoadingUI._logoBg,LoadingUI._progressLogo,LoadingUI._maskShape,LoadingUI._mask)})}static clearLogoCache(){if(null!=LoadingUI._loadLogoCache){for(let s=0;s{LoadingUI.waitForAnimationComplete(s)},callbackScope:LoadingUI.bootscene,delay:100})}static _logoFakeLoad(s){let a=LoadingUI._progressLogo.displayWidth;LoadingUI.bootscene.tweens.add({targets:LoadingUI._maskShape,displayWidth:a,duration:2e3,ease:Phaser.Math.Easing.Sine.InOut,onComplete:()=>{LoadingUI._logoFadeOut(s)}})}static _logoFadeOut(s){LoadingUI.bootscene.time.addEvent({callback:()=>{let a=[];LoadingUI.config.showBg&&a.push(LoadingUI._bg),LoadingUI.config.showPercent&&a.push(LoadingUI._loadPercentageText),LoadingUI.config.showLoadBar&&(a.push(LoadingUI._progressFrame.getObject()),a.push(LoadingUI._progressFill.getObject())),LoadingUI.config.showLogo&&(a.push(LoadingUI._logoBg),a.push(LoadingUI._progressLogo)),LoadingUI.config.fadeOut?LoadingUI.bootscene.tweens.existing(Tween_FadeOut(LoadingUI.bootscene,a,500,()=>{s.call(LoadingUI.bootscene)})):s.call(LoadingUI.bootscene)},callbackScope:LoadingUI.bootscene,delay:1e3})}}LoadingUI.bootscene=null,LoadingUI.config={showBg:!1,showPercent:!1,showLoadBar:!1,showLogo:!0,fadeOut:!0};