var __extends=this&&this.__extends||function(){var n=function(t,i){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,t){n.__proto__=t}||function(n,t){for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(n[i]=t[i])},n(t,i)};return function(t,i){function r(){this.constructor=t}n(t,i);t.prototype=i===null?Object.create(i):(r.prototype=i.prototype,new r)}}(),Debug,Masunaka;(function(n){var t=function(){function n(){}return n.GetLevel=function(n){var t=.5+Math.sqrt(1+n/125)*.5;return Math.floor(t)},n}();n.LevelSystem=t})(Masunaka||(Masunaka={})),function(n){n.TRUMPMONEY_INITVALUE=3e5;n.savedata={gamePlayNum:0,gameWinNum:0,point:0};n.global_savedata={volume:30,isSeOn:!0,trumpMoney:n.TRUMPMONEY_INITVALUE,trumpMoneyMax:n.TRUMPMONEY_INITVALUE,bustNum:0,point:0};var t=function(){function t(){if(this.savedata_name="freecell",t.instance)throw new Error("Error: Use getInstance() instead of new");t.instance=this}return t.getInstance=function(){return t.instance===null&&(t.instance=new t),t.instance},t.prototype.InitSettings=function(t){n.global_savedata.volume=30;t==n.RunEnv.Desktop?n.global_savedata.isSeOn=!0:t==n.RunEnv.Mobile&&(n.global_savedata.isSeOn=!1)},t.prototype.InitRecord=function(){n.savedata.gamePlayNum=0;n.savedata.gameWinNum=0;n.savedata.point=0},t.prototype.InitGlobalRecord=function(){n.global_savedata.trumpMoney=n.TRUMPMONEY_INITVALUE;n.global_savedata.trumpMoneyMax=n.TRUMPMONEY_INITVALUE;n.global_savedata.bustNum=0;n.global_savedata.point=0},t.prototype.Save=function(){var i=JSON.stringify(n.savedata),t;localStorage.removeItem(this.savedata_name);localStorage.setItem(this.savedata_name,i);t=JSON.stringify(n.global_savedata);localStorage.removeItem("global_savedata");localStorage.setItem("global_savedata",t)},t.prototype.Load=function(){var f,r,t,e,u,i;if(localStorage[this.savedata_name]!=null){f=localStorage[this.savedata_name];r=JSON.parse(f);for(t in n.savedata)r[t]!=undefined&&(n.savedata[t]=r[t])}if(localStorage.global_savedata!=null){e=localStorage.global_savedata;u=JSON.parse(e);for(i in n.global_savedata)u[i]!=undefined&&(n.global_savedata[i]=u[i])}},t.prototype.Clear=function(){localStorage.clear()},t.prototype.ReflectRecord=function(){var t;$("#record_playnum").html(n.savedata.gamePlayNum.toString());$("#record_clearnum").html(n.savedata.gameWinNum.toString());t=n.savedata.gamePlayNum>0?n.savedata.gameWinNum/n.savedata.gamePlayNum*100:0;$("#record_average").html(t.toFixed(1)+"%");$("#record_experience").html(n.global_savedata.point.toString());$("#record_level").html(n.LevelSystem.GetLevel(n.global_savedata.point).toString())},t.prototype.SetExperiencePoint=function(){n.global_savedata.point+=100},t.instance=null,t}();n.Setting=t}(Masunaka||(Masunaka={})),function(n){function t(){}n.printf=t}(Debug||(Debug={})),function(n){var s,i,u,f,r,t,e,o;(function(n){n[n.None=0]="None";n[n.Desktop=1]="Desktop";n[n.Mobile=2]="Mobile"})(s=n.RunEnv||(n.RunEnv={}));i=function(){function n(){}return n.Do=function(){},n.Awake=function(){},n.sleepCounter=0,n.SLEEP_FRAME=600,n.isSleep=!1,n}();n.SleepManager=i;u=function(){function n(){}return n.GetRandomUniqueIndexArray=function(n,t,i){var r,u,f;if(t>n)return-1;for(u=new Array(n),r=0;r0},n.IsiPhone=function(){return n.GetUA("iPhone")},n.IsiPad=function(){return n.GetUA("iPad")},n.IsAndroid=function(){return n.GetUA("Android")},n.IsTablet=function(){return n.IsiPad()||n.IsAndroid()},n.IsMobileOS=function(){return n.IsiPhone()||n.IsiPad()||n.IsAndroid()},n}();n.UAUtil=f;r=function(){function n(){this.queue=[]}return n.prototype.Set=function(n){this.queue.push(n)},n.prototype.Get=function(){return this.queue.length==0?null:this.queue.shift()},n.prototype.Reset=function(){this.queue.length=0},n}();n.EventQueue=r;t=function(){function n(){this.cmdarr=[n.cGoto,n.cGosub,n.cReturn,n.cPush,n.cPop,n.cClear,n.cEnd,n.cFunc];this.stateObject={};this.counter=0;this.live=!0}return n.prototype.SetStateObject=function(t){var i,r,u,f,e;for(i in t){this.stateObject[i]={};for(r in t[i])for(this.stateObject[i][r]=new Array(t[i][r].length),u=0;ut.uid?1:-1}),i=0;i<52;i++)this.allCards[i].visible=!1,this.allCards[i].cache(0,0,n.GameInfo.CARD_WIDTH,n.GameInfo.CARD_HEIGHT),this.stage.addChild(this.allCards[i])},r.prototype.BeginGame=function(){for(var t=0;ti.id?1:-1:r.sortingOrder>u.sortingOrder?1:r.sortingOrderu.id?1:-1})},r.prototype.GetCardDataFromSpriteId=function(n){for(var t=0;t=0;t--)if(this.mouse.IsDrag()&&this.mouse.IsDragRect(this.field[n][t].getTransformedBounds())&&!this.invalidDrag){if(this.IsDragable(n,t)){for(this.isDrag=!0,i=t;i<=this.field[n].length-1;i++)this.dragCards.push(this.field[n][i]);this.dragOriginalArray=this.field[n];this.SetDragParameter(this.field[n][t]);this.SetSortingOrderAll();this.sm.Play("toru2");this.fieldDragIndex=n;this.freecellDragIndex=-1;return}this.invalidDrag=!0;return}},r.prototype.DetectFieldDoubleClick=function(){var i,t,u;if(this.isDrag)return!1;for(i=0;i=0;t--)if(this.mouse.IsClick()&&this.mouse.IsClickRect(this.field[i][t].getTransformedBounds()))return t!=this.field[i].length-1&&this.gd.SetCardInfoLimitedTime(this.field[i][t],90),!1;return!1},r.prototype.DetectFreecellDrag=function(){var n;if(!this.isDrag)for(n=0;n0?(o=this.homecell[t][this.homecell[t].length-1].rank,o0&&(u=this.field[t][this.field[t].length-1],u.rank<=f+1))for(i=0;i=r.THRESHOLD_LAPOVER&&this.IsAbleToMoveToField(t,this.dragCards[0])&&this.IsAbleToMoveMultiCards(this.fieldDragIndex,t)){for(e=this.dragCards.length,this.freecellDragIndex==-1?this.dragOriginalArray.splice(-e,e):this.freecell[this.freecellDragIndex]=null,i=0;i=r.THRESHOLD_LAPOVER))return this.freecellDragIndex==-1?this.dragOriginalArray.splice(-1,1):this.freecell[this.freecellDragIndex]=null,this.freecell[n]=this.dragCards[0],this.RegisterHistory(),this.gd.SetCardCoord(),createjs.Tween.get(this.freecell[n]).to({x:this.freecell[n].toX,y:this.freecell[n].toY},50).call(function(){i.dragCards.length=0}),this.StartGame(),!0;return!1},r.prototype.DropHomecell=function(){var u=this,n,t,i;if(this.dragCards.length!=1)return!1;for(n=0;n=r.THRESHOLD_LAPOVER&&this.IsAbleToMoveToHomecell(n,this.dragCards[0])){for(this.freecellDragIndex==-1?this.dragOriginalArray.splice(-1,1):this.freecell[this.freecellDragIndex]=null,this.homecell[n].push(this.dragCards[0]),this.RegisterHistory(),this.gd.SetCardCoord(),t=0;t0){this.SetPointed(this.dragCards[0]);return}for(n=0;n=0;t--)if(this.mouse.IsClickRect(this.field[n][t].getTransformedBounds())){this.SetPointed(this.field[n][t]);return}for(n=0;n=2&&this.SetEnabledButton("#undo",!0);Debug.printf("!!! Save History !!!")},r.prototype.CreateNewCardData=function(n){if(n==null)return null;var t=new i;return t.uid=n.uid,createjs.Tween.hasActiveTweens(n)?(t.x=n.toX,t.y=n.toY):(t.x=n.x,t.y=n.y),t.isHeads=n.isHeads,t},r.prototype.CopyCardStatus=function(n){if(n==null)return null;var t=this.allCards[n.uid];return t.x=n.x,t.y=n.y,t.isHeads=n.isHeads,t},r.prototype.SetVisibleAllCards=function(n){for(var t=0;te.generalWaitFrame&&e.eq.Set("eDone")},e.CardAnimBegin=function(){},e.CardAnimDo=function(){createjs.Tween.hasActiveTweens()||(e.cm.SetSortingOrderAll(),e.eq.Set("eDone"))},e.LoadErrorBegin=function(){e.gd.SetVisibleInformationWindow(!0);e.gd.SetInformation("The game failed to load. Please refresh your browser.")},e.LoadErrorDo=function(){},e.SetStateObject(e.sj),e.runenv==n.RunEnv.Desktop?(n.GameInfo.CARD_WIDTH=72,n.GameInfo.CARD_HEIGHT=100,n.CardsManager.THRESHOLD_LAPOVER=2e3,e.gd=new n.GameDrawDesktop(e.stage)):e.runenv==n.RunEnv.Mobile&&(n.GameInfo.CARD_WIDTH=36,n.GameInfo.CARD_HEIGHT=50,n.CardsManager.THRESHOLD_LAPOVER=700,e.gd=new n.GameDrawMobile(e.stage)),e.cm=new n.CardsManager(e.stage,e.mouse,e.runenv),e.sm=new n.SoundManager,e.st=n.Setting.getInstance(),e.gi=new n.GameInfo(e.gd,e.mouse,e.cm,e.sm,e.runenv),e.st.Load(),e.st.ReflectRecord(),e}return __extends(i,t),i.GENERAL_WAIT_FRAME_DEFAULT=10,i}(n.TsState);n.GameManager=t}(Masunaka||(Masunaka={})),function(n){var t=function(){function t(){var t=this,i,r;this.MainLoop=function(){if(!n.SleepManager.isSleep){t.mouse.Update();t.stateMachine.Do();t.gameManager.restartFlag&&t.gameManager.startFlag&&(t.stateMachine.Restart("BeforeGame"),t.gameManager.restartFlag=!1);t.stateMachine.state!="Load"&&n.SleepManager.Do();switch(t.stateMachine.state){case"Setup":case"DealCard":case"Load":case"LoadError":case"Title":break;default:t.gameManager.gd.Do()}t.stage.update()}};this.runenv=$("#gamescript").data("target")=="desktop"?n.RunEnv.Desktop:n.RunEnv.Mobile;this.canvas=document.getElementById("gameCanvas");this.stage=new createjs.Stage(this.canvas);this.stage.enableMouseOver();this.stage.mouseMoveOutside=!0;createjs.Touch.enable(this.stage,!0);i=new createjs.Shape;i.graphics.beginFill("#228b22").rect(0,0,this.canvas.width,this.canvas.height);this.stage.addChild(i);n.Setting.getInstance().InitSettings(this.runenv);n.Setting.getInstance().Load();n.Setting.getInstance().ReflectRecord();this.mouse=new n.MouseInput;this.stage.on("mousedown",function(n){t.mouse.MouseDownEvent(n)});this.stage.on("pressup",function(n){t.mouse.MouseUpEvent(n)});this.stage.on("pressmove",function(n){t.mouse.TouchMoveEvent(n)});this.stage.on("dblclick",function(n){t.mouse.DoubleClickEvent(n)});this.gameManager=new n.GameManager(this.stage,this.mouse,this.runenv);this.stateMachine=new n.StateMachine(this.gameManager,"Setup");this.runenv==n.RunEnv.Desktop?(this.uiController=new n.UIController(this.stateMachine,this.gameManager),this.uiController.SetupUIMenuBar(),this.uiController.SetupUIUpMenu(),this.uiController.SetupUIGameButton(),this.uiController.SetupUISettingsDialog(),this.uiController.SetupUIRecordDialog(),this.uiController.SetupUIFromStartDialog()):this.runenv==n.RunEnv.Mobile&&(this.uiControllerMobile=new n.UIControllerMobile(this.stateMachine,this.gameManager),this.uiControllerMobile.SetupUIGameButton(),this.uiControllerMobile.SetupUISettingDialog(),this.uiControllerMobile.SetupUIRecordPage(),this.uiControllerMobile.SetupUIMenuPage(),this.uiControllerMobile.SetupUIFromStartDialog());createjs.Ticker.setFPS(30);createjs.Ticker.addEventListener("tick",this.MainLoop);r=n.global_savedata.isSeOn?"on":"off";adConfig({sound:r,preloadAdBreaks:"on"})}return t.VERSION_DESKTOP="1.00",t.VERSION_MOBILE="1.00",t}();n.GameMain=t}(Masunaka||(Masunaka={}));$(function(){var n=new Masunaka.GameMain}),function(n){var t=function(){function t(){}return t.SortByRank=function(t){t.sort(function(t,i){if(t.rank>i.rank)return 1;if(t.rank0&&(this.infoTextCounter--,this.infoTextCounter==0&&(this.infoText.text=this.infoTextStack,this.infoTextCounter=-1,this.HideSuitSprite()))},t.prototype.ClearInformation=function(){this.infoText.text=this.infoTextStack="";this.infoTextCounter=-1},t.prototype.CreateInformationWindow=function(){},t.prototype.SetVisibleInformationWindow=function(n){this.infoContainer.visible=n},t.prototype.CreateClearImage=function(){},t.prototype.SetVisibleClearImage=function(n){this.clearBitmap.visible=n},t.prototype.CreateTitle=function(){},t.prototype.SetVisibleTitle=function(n){this.titleContainer.visible=n},t.prototype.CreateNowLoading=function(){},t.prototype.SetLoadingCounter=function(n){var t=n%40,i;i=t<10?"Now Loading":t<20?"Now Loading .":t<30?"Now Loading ..":"Now Loading ...";this.nowLoadingText.text=i},t.prototype.SetVisibleNowLoading=function(n){this.nowLoadingText.visible=n},t.prototype.CreateSuitImage=function(){},t.prototype.HideSuitSprite=function(){for(var n=0;n<4;n++)this.suitSprite[n].visible=!1;this.infoTextRank.text=""},t.FONTSET="Helvetica,Arial,Verdana,sans-serif",t.CARD_SPEED=200,t.CARD_SPEED2=100,t.CARD_SPEED_AUTO=300,t}();n.GameDrawBase=t}(Masunaka||(Masunaka={})),function(n){var t=function(t){function i(n){return t.call(this,n)||this}return __extends(i,t),i.prototype.SetDrawPositionObject=function(n){this.dp=n},i.prototype.CreateFieldRect=function(){var t;for(this.fieldOffset=-1,this.cellOffset=4,t=0;t