var Result = { preload: function() { game.load.image('icon_fullscreen', '../../../resources/image/icon/fullscreen_white.png'); if(isTypingPracticeApp() || isTypingTestApp()) Animal.loadResources(); RankingBoard.loadResources(); game.load.image('star', '../../../resources/image/ui/star_particle.png'); }, create: function() { this.dbConnectManager = new DBConnectManager(); this.game.stage.backgroundColor = '#4d4d4d'; this.chartGraphics = game.add.graphics(100, game.world.height - 120); // keyboard shortcut this.keyboardShortcut = new KeyboardShortcut(); this.keyboardShortcut.addCallback( Phaser.KeyCode.ESC, // keyCode null, // keyDownHandler (function() { this.back(); }).bind(this), // keyUpHandler "result" // callerClassName ); this.keyboardShortcut.addCallback( Phaser.KeyCode.ENTER, // keyCode null, // keyDownHandler (function() { this.restartStage(); }).bind(this), // keyUpHandler "result" // callerClassName ); // top ui var screenTopUI = new ScreenTopUI(); screenTopUI.makeBackButton( (function() { this.back(); }).bind(this) ); screenTopUI.makeFullScreenButton(); // contents this.printRecord(); if(sessionStorageManager.getMaestroAccountType() < 100) { // experience account this.updateResultRecord(); } this.makeRestartButton(); if(sessionStorageManager.getMaestroAccountType() >= 100) { // experience account var recordBoard = new RecordBoard(RecordBoard.TYPE_SAMPLE); this.announceBox = new AnnounceBox(50, 648); this.announceBox.drawBox("체험 계정에서는 기록이 저장되지 않습니다."); } else { this.printTodayBestRecord(); var recordBoard = new RecordBoard(RecordBoard.TYPE_DB); } // bottom ui var screenBottomUI = new ScreenBottomUI(); screenBottomUI.printLeftTextWithAppHighestRecord(sessionStorageManager.getAppHighestRecord()); screenBottomUI.printCenterText(sessionStorageManager.getPlayingAppKoreanName()); screenBottomUI.printRightText(sessionStorageManager.getPlayerName()); }, back: function() { if(isTypingPracticeApp()) location.href = '../../web/client/menu_typing_practice.html'; else if(isTypingTestApp()) location.href = '../../web/client/menu_typing_test.html'; else location.href = '../../web/client/menu_app.html'; sessionStorageManager.resetPlayingAppData(); }, printRecord: function() { var style = { font: "bold 38px Arial", fill: "#fff", align: "left", boundsAlignH: "center", boundsAlignV: "middle" }; var titleText = game.add.text(game.world.width / 2, 35, "결과", style); titleText.setShadow(3, 3, 'rgba(0, 0, 0, 0.5)', 2); titleText.anchor.set(0.5); var x = game.world.width / 2; var y = 150; if(sessionStorageManager.getRecord() === null) sessionStorageManager.setRecord(0); if(isTypingPracticeApp() || isTypingTestApp()) { var animalLevelID = 0; if(isTypingPracticeApp()) animalLevelID = Animal.animalLevelIDByRecord(sessionStorageManager.getRecord(), Animal.TYPE_PRACTICE); else // Typing Test App animalLevelID = Animal.animalLevelIDByRecord(sessionStorageManager.getRecord(), Animal.TYPE_TEST); var leftAnimal = new Animal(Animal.TYPE_ANIMATION, animalLevelID, game.world.centerX - 200, 150); leftAnimal.startAnimation(Animal.SPECIES_DATA[animalLevelID]); var rightAnimal = new Animal(Animal.TYPE_ANIMATION, animalLevelID, game.world.centerX + 200, 150); rightAnimal.startAnimation(Animal.SPECIES_DATA[animalLevelID]); } var record = sessionStorageManager.getRecord(); style.font = "80px Arial"; var scoreText = game.add.text( x, y, RecordUtil.getRecordValueWithUnit(record, sessionStorageManager.getPlayingAppID()), style ); scoreText.setShadow(3, 3, 'rgba(0, 0, 0, 0.5)', 2); scoreText.anchor.set(0.5); }, printTodayBestRecord: function() { var newRecordEmitter = game.add.emitter(game.world.centerX, 140, 300); newRecordEmitter.makeParticles('star'); newRecordEmitter.gravity = 300; var style = { font: "32px Arial", fill: "#ff0", align: "left", boundsAlignH: "center", boundsAlignV: "middle" }; var bestRecordText = game.add.text(game.world.centerX, 220, "", style); bestRecordText.anchor.set(0.5); bestRecordText.stroke = "#333"; bestRecordText.strokeThickness = 5; if(sessionStorageManager.getAppHighestRecord() == 'undefined' || sessionStorageManager.getAppHighestRecord() == null) sessionStorageManager.setAppHighestRecord(0); var todayBestRecord = 0; var flooredBestRecord = Math.floor(sessionStorageManager.getAppHighestRecord()); var bestRecordWithCommas = NumberUtil.numberWithCommas(flooredBestRecord); if(sessionStorageManager.getRecord() > sessionStorageManager.getAppHighestRecord()) { sessionStorageManager.setAppHighestRecord(sessionStorageManager.getRecord()); bestRecordText.text = "! : . 최고 기록 경신 . : !"; newRecordEmitter.start(true, 2000, null, 20); } else { bestRecordText.text = ""; } }, updateResultRecord: function() { this.dbConnectManager.updateResultRecord( sessionStorageManager.getMaestroID(), sessionStorageManager.getPlayerID(), sessionStorageManager.getPlayingAppID(), sessionStorageManager.getRecord() ); }, makeRestartButton: function() { var setting = new RoundRectButtonSetting(game.world.centerX, game.world.height / 2 - 70, 200, 100); setting.fontStyle.fontWeight = "bold"; var startButton = new RoundRectButton(setting, RoundRectButton.NONE_ICON, "다시 시작", this.restartStage); startButton.addShortcutText("Enter"); }, restartStage: function() { location.href = "../../web/client/" + getGameAppName() + ".html"; } }