From 6d27a45a26f7fe2b1c0f7ea4e7ff36a182f1f3dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E1=84=8B=E1=85=A2=E1=84=91=E1=85=B3=E1=86=AF=20=E1=84=82?= =?UTF-8?q?=E1=85=A9=E1=84=90=E1=85=B3=E1=84=87=E1=85=AE=E1=86=A8?= Date: Wed, 16 May 2018 11:04:34 +0900 Subject: [PATCH] Add: print temp data for ranking board --- src/game/result/ranking_board.js | 165 +++++++++++++++++++++++++++++++ src/game/result/record_board.js | 2 + 2 files changed, 167 insertions(+) diff --git a/src/game/result/ranking_board.js b/src/game/result/ranking_board.js index 58bb482..9d5e840 100644 --- a/src/game/result/ranking_board.js +++ b/src/game/result/ranking_board.js @@ -3,4 +3,169 @@ class RankingBoard { + constructor() { + let arrayTabStyle = { font: "20px Arial", fill: "#fff", align: "left", tabs: [ 40, 80, 120 ] }; + + let posX = 340; + let posY = game.world.height / 2 - 10; + this.textHourRanking = this.printRankingContent(posX, posY + 100, arrayTabStyle); + + posX = 560; + this.textDayRanking = this.printRankingContent(posX, posY + 100, arrayTabStyle); + + posX = 780; + this.textMonthRanking = this.printRankingContent(posX, posY + 100, arrayTabStyle); + + this.showRankingHour(this.makeTemporaryJsonRankingList()); + this.showRankingDay(this.makeTemporaryJsonRankingList()); + this.showRankingMonth(this.makeTemporaryJsonRankingList()); + } + + + printRankingContent(x, y, style) { + return game.add.text(x, y, '', style) + .setShadow(3, 3, 'rgba(0, 0, 0, 0.5)', 2); + } + + showRankingHour(jsonRankingList) { + if(jsonRankingList == null) { + var rankEmpty = [ ]; + this.textHourRanking.parseList(rankEmpty); + + return; + } + + /* + var recordArray = this.getRankingArrayFromJSON(jsonRankingList2); + */ + var recordArray = this.getRankingArrayFromJSON(jsonRankingList); + // console.log("Ranking Hour : " + recordArray); + this.textHourRanking.parseList(recordArray); + this.showMedal(this.medalHour, this.getMyRankFromJSON(jsonRankingList)); + } + + showRankingDay(jsonRankingList) { + // console.log("Ranking Day : " + jsonRankingList); + if(jsonRankingList == null) { + var rankEmpty = [ ]; + this.textDayRanking.parseList(rankEmpty); + + return; + } + + var recordArray = this.getRankingArrayFromJSON(jsonRankingList); + // console.log("Ranking Day : " + recordArray); + this.textDayRanking.parseList(recordArray); + this.showMedal(this.medalDay, this.getMyRankFromJSON(jsonRankingList)); + } + + showRankingMonth(jsonRankingList) { + if(jsonRankingList == null) { + var rankEmpty = [ ]; + this.textMonthRanking.parseList(rankEmpty); + + return; + } + + var recordArray = this.getRankingArrayFromJSON(jsonRankingList); + // console.log("Ranking Month : " + recordArray); + this.textMonthRanking.parseList(recordArray); + this.showMedal(this.medalMonth, this.getMyRankFromJSON(jsonRankingList)); + } + + getRankingArrayFromJSON(jsonRankingList) { + var rankingListCount = jsonRankingList.length; + var myRank = this.getMyRankFromJSON(jsonRankingList); + var myRankIndex = myRank - 1; + // console.log("myRankIndex : " + myRankIndex); + + var startIndex = 0; + var endIndex = rankingListCount; + + if(rankingListCount > 7) { + if(myRank < rankingListCount - 3) { // my rank is better than the worst 3 + if(myRank < 5) { + startIndex = 0; + endIndex = rankingListCount > 7 ? 7 : rankingListCount; + } else { + startIndex = myRankIndex - 3; + endIndex = myRankIndex + 4; + } + } else { // my rank is in the worst 3 + startIndex = rankingListCount > 7 ? rankingListCount - 7 : 0; + endIndex = rankingListCount; + } + } + + var recordArray = []; + for(var i = startIndex; i < endIndex; i++) { + var bestRecordRow = []; + // bestRecordRow[0] = jsonRankingList[i]['UserID']; + bestRecordRow[0] = i + 1; + bestRecordRow[1] = jsonRankingList[i]['Name']; + bestRecordRow[2] = NumberUtil.numberWithCommas(Math.floor(jsonRankingList[i]['BestRecord'])); + // console.log("$BestRecordRow : " + bestRecordRow[0] + ", " + bestRecordRow[1] + ", " + bestRecordRow[2]); + + recordArray.push(bestRecordRow); + } + + return recordArray; + } + + getMyRankFromJSON(jsonRankingList) { + var myRank = -1; + for(var i = 0; i < jsonRankingList.length; i++) { + if(jsonRankingList[i]['UserID'] == sessionStorageManager.playerUserID) { + myRank = i + 1; + } + } + + return myRank; + } + + showMedal(medal, myRank) { + /* + if(myRank > 3) { + medal.alpha = 0; + return; + } + + if(myRank == 1) + medal.loadTexture("medal_gold"); + else if(myRank == 2) + medal.loadTexture("medal_silver"); + else if(myRank == 3) + medal.loadTexture("medal_bronze"); + + medal.alpha = 1; + medal.scale.setTo(0.5); + game.add.tween(medal.scale).to( {x: 0.7, y: 0.7}, 1000, Phaser.Easing.Bounce.Out, true); + */ + } + + makeTemporaryJsonRankingList() { + let jsonRankingList = [ + { "UserID":"17", "Name":"강경모", "BestRecord":"4400" }, + { "UserID":"2", "Name":"강성태", "BestRecord":"3400" }, + { "UserID":"3", "Name":"김기덕", "BestRecord":"2400" }, + { "UserID":"4", "Name":"김남희", "BestRecord":"1400" }, + { "UserID":"5", "Name":"고봉순", "BestRecord":"900" }, + { "UserID":"6", "Name":"파르마", "BestRecord":"800" }, + { "UserID":"1", "Name":"박지상", "BestRecord":"700" }, + { "UserID":"8", "Name":"신현주", "BestRecord":"600" }, + { "UserID":"9", "Name":"꼬봉이", "BestRecord":"500" }, + { "UserID":"10", "Name":"거북이", "BestRecord":"400" }, + { "UserID":"11", "Name":"다람쥐", "BestRecord":"300" }, + { "UserID":"12", "Name":"사시미", "BestRecord":"200" }, + { "UserID":"13", "Name":"태권도", "BestRecord":"100" }, + { "UserID":"14", "Name":"합기도", "BestRecord":"40" }, + { "UserID":"15", "Name":"우습지", "BestRecord":"10" }, + { "UserID":"16", "Name":"하하하", "BestRecord":"4" }, + ]; + + return jsonRankingList; + } + + + } \ No newline at end of file diff --git a/src/game/result/record_board.js b/src/game/result/record_board.js index e801d0c..0a14a77 100644 --- a/src/game/result/record_board.js +++ b/src/game/result/record_board.js @@ -7,6 +7,8 @@ class RecordBoard { this.chartGraphics = game.add.graphics(0, 0); this.printRecordBoardHeader(); + + let rankingBoard = new RankingBoard(); }