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,0,0],gameWinNum:[0,0,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="spider",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,0,0];n.savedata.gameWinNum=[0,0,0];n.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(){for(var i,t=0;t<3;t++)$("#record_playnum_"+t.toString()).html(n.savedata.gamePlayNum[t].toString()),$("#record_clearnum_"+t.toString()).html(n.savedata.gameWinNum[t].toString()),i=n.savedata.gamePlayNum[t]>0?n.savedata.gameWinNum[t]/n.savedata.gamePlayNum[t]*100:0,$("#record_average_"+t.toString()).html(i.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(){var t;n.GameInfo.gameLevel==n.GameInfo.LEVEL_EASY?t=80:n.GameInfo.gameLevel==n.GameInfo.LEVEL_NORMAL?t=120:n.GameInfo.gameLevel==n.GameInfo.LEVEL_HARD&&(t=500);n.global_savedata.point+=t},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;ii.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.fieldDragRect.x=this.field[n][t].x,this.fieldDragRect.y=this.field[n][t].y,this.mouse.IsDrag()&&this.mouse.IsDragRect(this.fieldDragRect)&&!this.invalidDrag){if(this.IsDragable(n,t)){for(this.isDrag=!0,f=t;f<=this.field[n].length-1;f++)this.dragCards.push(this.field[n][f]);for(this.dragOriginalArray=this.field[n],this.SetDragParameter(this.field[n][t]),this.SetSortingOrderAll(),this.sm.Play("toru2"),this.ReleaseSelectedAll(),this.gd.SetFieldCoord(),i=0;i=t||(this.field[i][u].x=this.field[i][u].toX,this.field[i][u].y=this.field[i][u].toY);return}this.invalidDrag=!0;return}},r.prototype.DetectPoolClicked=function(){var t,i;if(this.mouse.IsPush()&&this.poolIndex>=0&&this.mouse.IsClickRect(this.poolRect)){if(!this.IsFillField())return Debug.printf("カードが無い列があるので山札を配ることはできません。"),this.gd.SetInformationLimitedTime(this.gd.GetText("spider_1"),90),!1;for(this.ReleasePointed(this.pool[this.poolIndex][9]),t=0;t=0&&(this.poolRect.x=this.pool[this.poolIndex][0].x,this.poolRect.y=this.pool[this.poolIndex][0].y),this.gd.SetFieldCoord(),t=0;t=r.THRESHOLD_LAPOVER&&this.IsAbleToMoveToField(t,this.dragCards[0])){for(e=this.dragCards.length,this.dragOriginalArray.splice(-e,e),h=this.field[t].length,i=0;i0&&(this.field[n][this.field[n].length-1].isHeads=!0)},r.prototype.CheckAtoK=function(){for(var t,u,e,f,i=0;i=0&&this.field[i][u].rank==n.Rank.Ace){for(e=this.field[i][u].suit,f=0,t=u-1;t>=0;t--)if(this.field[i][t].isHeads&&this.field[i][t].rank==f+1&&this.field[i][t].suit==e)f++;else break;if(f==12){for(t=0;t<13;t++)this.discard[this.discardIndex].unshift(this.field[i].pop());for(t=0;t<13;t++)createjs.Tween.get(this.discard[this.discardIndex][12-t]).wait(50*t).to({x:this.gd.xDiscard+this.discardIndex*this.gd.xIntervalDiscard,y:this.gd.yDiscard},n.GameDrawBase.CARD_SPEED,createjs.Ease.cubicOut);for(this.sm.Play("complete"),this.discardIndex++,this.gd.SetFieldCoord(),t=0;t0){this.SetPointed(this.dragCards[0]);return}if(this.poolIndex>=0&&this.mouse.IsClickRect(this.poolRect)){this.SetPointed(this.pool[this.poolIndex][9]);return}for(n=0;n=0;t--)if(this.fieldClickRect.x=this.field[n][t].x,this.fieldClickRect.y=this.field[n][t].y,this.field[n][t].isHeads&&this.mouse.IsClickRect(this.fieldClickRect)){this.SetPointed(this.field[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.CheckSelected=function(){var n,t;if(!this.invalidDrag&&this.mouse.IsUp())for(n=0;n=0;t--)if(this.fieldClickRect.x=this.field[n][t].x,this.fieldClickRect.y=this.field[n][t].y,this.field[n][t].isHeads&&this.mouse.IsClickRect(this.fieldClickRect))return this.SetSelected(n,t),!0;return!1},r.prototype.SetSelected=function(n,t){var f,i,u,e=this.field[n][t];if(this.gd.SetFieldCoord(),this.selected_i==n&&this.selected_j==t){for(this.ReleaseSelected(n,t),i=0;i=0&&(this.poolRect.x=this.pool[this.poolIndex][0].x,this.poolRect.y=this.pool[this.poolIndex][0].y);this.SetSortingOrderAll();this.sm.Play("undo");this.histories.length<2&&this.SetEnabledButton("#undo",!1);Debug.printf("!!! Get History !!!")},r.prototype.RegisterHistory=function(){var n,i,u=new t;for(u.pool=new Array(r.POOL_NUM),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.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());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.rankt.Y_LIMIT_FIELD?(s=t.Y_LIMIT_FIELD-this.yFieldBase-n.GameInfo.CARD_HEIGHT-this.yIntervalFieldReverse*u,e=Math.floor(s/(f-1))):e=this.yIntervalFieldDefault,i=0;i0&&(this.infoTextCounter--,this.infoTextCounter==0&&(this.infoText.text=this.infoTextStack,this.infoTextCounter=-1))},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.FONTSET="Helvetica,Arial,Verdana,sans-serif",t.CARD_SPEED=400,t.CARD_SPEED2=100,t.CARD_SPEED_AUTO=300,t.Y_LIMIT_FIELD=450,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