var Start = { preload: function() { game.load.image('icon_fullscreen', '../../../resources/image/icon/fullscreen_white.png'); }, create: function() { this.dbConnectManager = new DBConnectManager(); this.game.stage.backgroundColor = '#4d4d4d'; this.howToPlay = new HowToPlay(); this.chart = new Chart(); // top ui var screenTopUI = new ScreenTopUI(); screenTopUI.makeBackButton( function() { if(isTypingPracticeStage()) location.href = '../../web/client/menu_typing_practice.html'; else if(isTypingTestStage()) location.href = '../../web/client/menu_typing_test.html'; else location.href = '../../web/client/menu_app.html'; sessionStorageManager.resetPlayingAppData(); }); screenTopUI.makeFullScreenButton(); // contents this.loadHowToPlay(sessionStorageManager.getPlayingAppID()); this.makeStartButton(); this.makeRankingButton(); if(sessionStorageManager.getMaestroAccountType() >= 100) { // experience account this.printSampleChart(); this.announceBox = new AnnounceBox(50, 648); this.announceBox.drawBox("체험 계정에서는 기록이 저장되지 않습니다."); } else { this.loadChart(); } // bottom ui var screenBottomUI = new ScreenBottomUI(); screenBottomUI.printLeftText("오늘의 최고 기록 : "); screenBottomUI.printCenterText(sessionStorageManager.getPlayingAppKoreanName()); screenBottomUI.printRightText(sessionStorageManager.getPlayerName()); this.dbConnectManager.requestTodayBestRecord( sessionStorageManager.getMaestroID(), sessionStorageManager.getPlayerID(), sessionStorageManager.getPlayingAppID(), (function(replyJSON) { sessionStorageManager.setBestRecord(Number(replyJSON["BestRecord"])); screenBottomUI.printLeftTextWithBestRecord(sessionStorageManager.getBestRecord()); }).bind(this), (function(replyJSON) { // no data sessionStorageManager.setBestRecord(0); screenBottomUI.printLeftTextWithBestRecord(sessionStorageManager.getBestRecord()); }).bind(this) ); }, loadHowToPlay: function(appID) { this.dbConnectManager.requestHowToPlay( sessionStorageManager.getPlayingAppID(), // space_invaders app ID (function(jsonData) { var howToPlayText = jsonData["HowToPlay"].replace(/\\n/g, "\n"); this.howToPlay.printHowToPlay(howToPlayText); }).bind(this), (function(jsonData) { this.howToPlay.printHowToPlay("No data"); }).bind(this) ); }, loadChart: function() { var today = new Date(); var date = DateUtil.getYYYYMMDD(today); this.dbConnectManager.requestPlayerHistory( sessionStorageManager.getMaestroID(), date, (function(historyRecordManager) { if(historyRecordManager.count == 0) { console.log("start - history record : no data"); return; } var underValue = historyRecordManager.underValueForGraph(); var upperValue = historyRecordManager.upperValueForGraph(); var minValue = underValue - (upperValue - underValue) / 10; var maxValue = upperValue;// + (upperValue - underValue) / 10; var countRecord = historyRecordManager.count; for(var i = 0; i < Chart.CHART_COUNT; i++) { // if(i > 6) // break; var historyRecord = historyRecordManager.getAt(i); this.chart.drawRecordGraph( i, historyRecord === undefined ? "-" : historyRecord.date, historyRecord === undefined ? "" : historyRecord.bestRecord, minValue, maxValue ); } this.chart.printChartBaseLine(); }).bind(this) ); }, calcDate: function(daysBefore) { var date = new Date(); date.setDate(date.getDate() - daysBefore); return date; }, printSampleChart: function() { var minValue = 0; var maxValue = 1000; this.chart.drawRecordGraph(0, this.calcDate(1), 980, minValue, maxValue); this.chart.drawRecordGraph(1, this.calcDate(2), 760, minValue, maxValue); this.chart.drawRecordGraph(2, this.calcDate(5), 740, minValue, maxValue); this.chart.drawRecordGraph(3, this.calcDate(7), 690, minValue, maxValue); this.chart.drawRecordGraph(4, this.calcDate(8), 710, minValue, maxValue); this.chart.drawRecordGraph(5, this.calcDate(10), 560, minValue, maxValue); this.chart.drawRecordGraph(6, this.calcDate(20), 480, minValue, maxValue); this.chart.printChartBaseLine(); }, makeStartButton: function() { var setting = new RoundRectButtonSetting(game.world.centerX, game.world.centerY, 200, 100); setting.fontStyle.fontWeight = "bold"; var startButton = new RoundRectButton(setting, RoundRectButton.NONE_ICON, "시작", this.startStage); }, makeRankingButton: function() { var setting = new RoundRectButtonSetting(game.world.centerX + 160, game.world.centerY, 60, 60); setting.fontStyle = { font: "18px Arial", boundsAlignH: "center", // left, center. right boundsAlignV: "middle", // top, middle, bottom fill: "#fff" }; var rankingButton = new RoundRectButton( setting, RoundRectButton.NONE_ICON, "순위\n보기", (function() { location.href = '../../web/client/ranking.html'; }) ); if(sessionStorageManager.getMaestroAccountType() == 100) rankingButton.inputEnabled = false; }, startStage: function() { if(isTypingPracticeStage()) location.href = "../../web/client/typing_practice.html"; else if(isTypingTestStage()) location.href = "../../web/client/typing_test.html"; else location.href = "../../web/client/" + sessionStorageManager.getPlayingAppName() + ".html"; } }