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={isRightHand:!1,gamePlayNum:0,gameWinNum:0,highscoreDate:[0,0,0,0,0],highscoreMinute:[99,99,99,99,99],highscoreSecond:[59,59,59,59,59],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="klondike",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;for(var i=0;i0?n.savedata.gameWinNum/n.savedata.gamePlayNum*100:0,$("#record_average").html(r.toFixed(1)+"%"),i=0;in)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.DealCards=function(){var t,f,i,u;for(this.poolRect=new createjs.Rectangle(this.gd.xPool,this.gd.yFoundations,n.GameInfo.CARD_WIDTH,n.GameInfo.CARD_HEIGHT),this.foundationsRect=new Array(r.FOUNDATIONS_NUM),t=0;t=100&&(this.min=99,this.sec=59),this.gd.SetElapsedTime(this.min,this.sec)),0)},r.prototype.SetSortingOrderAll=function(){for(var t,n=0;ni.id?1:-1:r.sortingOrder>u.sortingOrder?1:r.sortingOrderu.id?1:-1})},r.prototype.GetCardDataFromSpriteId=function(n){for(var t=0;t0&&(this.tableauClickRect.x=this.tableau[t][this.tableau[t].length-1].x,this.tableauClickRect.y=this.tableau[t][this.tableau[t].length-1].y,this.mouse.IsClick()&&this.mouse.IsClickRect(this.tableauClickRect)))for(i=0;i=0;i--)if(this.tableauClickRect.x=this.tableau[t][i].x,this.tableauClickRect.y=this.tableau[t][i].y,this.mouse.IsDrag()&&this.mouse.IsDragRect(this.tableauClickRect)&&this.tableau[t][i].isHeads){for(this.drag=!0,this.sm.Play("toru2"),f=i;f<=this.tableau[t].length-1;f++)this.dragCards.push(this.tableau[t][f]);this.dragOriginalArray=this.tableau[t];this.SetDragParameter(this.tableau[t][i]);this.SetSortingOrderAll();return}}},r.prototype.DetectFoundationsClicked=function(){var n;if(!this.drag&&!createjs.Tween.hasActiveTweens())for(n=0;n0&&this.mouse.IsDrag()&&this.mouse.IsDragRect(this.foundationsRect[n])){this.drag=!0;this.sm.Play("toru2");this.dragCards.push(this.foundations[n][this.foundations[n].length-1]);this.dragOriginalArray=this.foundations[n];this.SetDragParameter(this.foundations[n][this.foundations[n].length-1]);this.SetSortingOrderAll();return}},r.prototype.DragAndDrop=function(){var n;if(this.drag){for(this.dragCards[0].x=this.mouse.x-this.drag_rel_x,this.dragCards[0].y=this.mouse.y-this.drag_rel_y,n=1;n=r.THRESHOLD_LAPOVER&&this.IsAbleToMoveToFoundations(t,this.dragCards[0]))return this.sm.Play("getcard"),this.dragCards.length=0,i=this.dragOriginalArray.pop(),this.foundations[t].push(i),i.toX=this.foundationsRect[t].x,i.toY=this.foundationsRect[t].y,createjs.Tween.get(i).to({x:this.foundationsRect[t].x,y:this.foundationsRect[t].y},n.GameDrawDesktop.CARD_SPEED2,createjs.Ease.cubicOut),this.sortRequest=!0,this.StartGame(),this.RegisterHistory(),!0;return!1},r.prototype.DropTableau=function(){for(var i,u,e,f,o,s,t=0;t=r.THRESHOLD_LAPOVER&&this.IsAbleToMoveToTableau(t,this.dragCards[0])){for(this.sm.Play("toru2"),f=this.dragCards.length,this.dragOriginalArray.splice(-f,f),o=this.tableau[t].length,s=this.GetTableauBase(t),i=0;i0&&(i=this.pool.pop(),this.MoveToDiscard(i,this.GetCoordXDiscard(t),this.gd.yFoundations,t))}else i=this.pool.pop(),this.MoveToDiscard(i,this.GetCoordXDiscard(0),this.gd.yFoundations,0)},r.prototype.MoveToDiscard=function(t,i,r,u){t.isHeads=!0;this.discard.push(t);t.toX=i;t.toY=r;createjs.Tween.get(t).to({x:i,y:r},n.GameDrawDesktop.CARD_SPEED+u*30,createjs.Ease.cubicOut)},r.prototype.ResetDiscard=function(){for(var n=0,t;this.discard.length>0;)t=this.discard.pop(),this.MoveToPool(t,this.gd.xPool,this.gd.yFoundations,n),n++},r.prototype.MoveToPool=function(n,t,i,r){n.isHeads=!1;this.pool.push(n);n.toX=t;n.toY=i;createjs.Tween.get(n).to({x:t,y:i},r*25,createjs.Ease.cubicOut)},r.prototype.UpdateTableau=function(){var n;if(!createjs.Tween.hasActiveTweens())for(n=0;n0&&(this.tableau[n][this.tableau[n].length-1].isHeads=!0)},r.prototype.IsAbleToMoveToFoundations=function(t,i){if(this.foundations[t].length==0){if(i.rank==n.Rank.Ace)return!0}else{var r=this.foundations[t][this.foundations[t].length-1];if(i.suit==r.suit&&i.rank==r.rank+1)return!0}return!1},r.prototype.IsAbleToMoveToTableau=function(t,i){if(this.tableau[t].length==0){if(i.rank==n.Rank.King)return!0}else{var r=this.tableau[t][this.tableau[t].length-1];if(i.color!=r.color&&i.rank==r.rank-1)return!0}return!1},r.prototype.JudgeClear=function(){return this.foundations[0].length==13&&this.foundations[1].length==13&&this.foundations[2].length==13&&this.foundations[3].length==13?!0:!1},r.prototype.DetectMousePointed=function(){var n,t;if(this.dragCards.length>0){this.SetPointed(this.dragCards[0]);return}if(this.pool.length>0&&this.mouse.IsClickRect(this.poolRect)){this.SetPointed(this.pool[this.pool.length-1]);return}if(this.discard.length>0&&(this.discardTopRect.x=this.discard[this.discard.length-1].x,this.discardTopRect.y=this.discard[this.discard.length-1].y,this.mouse.IsClickRect(this.discardTopRect))){this.SetPointed(this.discard[this.discard.length-1]);return}for(n=0;n0&&this.mouse.IsClickRect(this.foundationsRect[n])){this.SetPointed(this.foundations[n][this.foundations[n].length-1]);return}for(n=0;n=0;t--)if(this.tableauClickRect.x=this.tableau[n][t].x,this.tableauClickRect.y=this.tableau[n][t].y,this.mouse.IsClickRect(this.tableauClickRect)&&this.tableau[n][t].isHeads){this.SetPointed(this.tableau[n][t]);return}this.mousePointedUid!=-1&&this.ReleasePointed(this.allCards[this.mousePointedUid]);this.mousePointedUid=-1},r.prototype.SetPointed=function(n){n.uid!=this.mousePointedUid&&(this.mousePointedUid!=-1&&this.ReleasePointed(this.allCards[this.mousePointedUid]),n.isPointed=!0,this.mousePointedUid=n.uid)},r.prototype.ReleasePointed=function(n){n.isPointed&&(n.isPointed=!1,this.mousePointedUid=-1)},r.prototype.AutoUp=function(){var t,u,i;if(!createjs.Tween.hasActiveTweens()){if(this.discard.length>0)for(t=0;t0)for(u=0;u=2&&this.SetEnabledButton("#undo",!0)},r.prototype.CreateNewCardData=function(n){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.Undo=function(){var n,i,t;if(!(this.histories.length<=1)){for(this.histories.pop(),t=this.histories[this.histories.length-1],this.pool.length=0,this.discard.length=0,n=0;nf.generalWaitFrame&&f.eq.Set("eDone")},f.CardAnimBegin=function(){},f.CardAnimDo=function(){createjs.Tween.hasActiveTweens()||f.eq.Set("eDone")},f.LoadErrorBegin=function(){f.gd.SetVisibleInformationWindow(!0);f.gd.SetInformation("The game failed to load. Please refresh your browser.")},f.LoadErrorDo=function(){},f.SetStateObject(f.sj),f.runenv==n.RunEnv.Desktop?(n.GameInfo.CARD_WIDTH=72,n.GameInfo.CARD_HEIGHT=100,n.CardsManager.THRESHOLD_LAPOVER=2e3,f.gd=new n.GameDrawDesktop(f.stage)):f.runenv==n.RunEnv.Mobile&&(n.GameInfo.CARD_WIDTH=43,n.GameInfo.CARD_HEIGHT=60,n.CardsManager.THRESHOLD_LAPOVER=700,f.gd=new n.GameDrawMobile(f.stage)),f.cm=new n.CardsManager(f.stage,f.mouse,f.runenv),f.sm=new n.SoundManager,f.st=n.Setting.getInstance(),f.gi=new n.GameInfo(f.gd,f.mouse,f.cm,f.sm,f.runenv),f.st.Load(),f.st.ReflectRecord(),f}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(){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(),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.rank