const i18n = require('LanguageData'); i18n.init(window.language); // languageID should be equal to the one we input in New Language ID input field cc.Class({ extends: cc.Component, properties: { onCloseDelegate: { type: cc.Object, default: null }, onAgainClicked: { type: cc.Object, default: null }, rankingNodes: { type: [cc.Node], default: [], }, winNode: { type: cc.Node, default: null, }, }, // LIFE-CYCLE CALLBACKS: onLoad() { }, againBtnOnClick(evt) { this.onClose(); if (!this.onAgainClicked) return; this.onAgainClicked(); }, homeBtnOnClick(evt) { this.onClose(); window.clearLocalStorageAndBackToLoginScene(); }, showPlayerInfo(playerRichInfoDict) { this.showRanking(playerRichInfoDict); }, showRanking(playerRichInfoDict) { const self = this; const sortablePlayers = []; for (let playerId in playerRichInfoDict) { const p = playerRichInfoDict[playerId]; p.id = playerId; if (null == p.score) { p.score = playerRichInfoDict[playerId].score; } if (null == p.score) { p.score = 0; } sortablePlayers.push(p); } const sortedPlayers = sortablePlayers.sort((a, b) => { if (a.score != b.score) { return (b.score - a.score); } else { return (a.id > b.id); } }); const selfPlayerInfo = JSON.parse(cc.sys.localStorage.getItem('selfPlayer')); for (let k in sortedPlayers) { const p = sortedPlayers[k]; const nameToDisplay = (() => { function isEmptyString(str) { return str == null || str == ''; } if (!isEmptyString(p.displayName)) { return p.displayName; } else if (!isEmptyString(p.name)) { return p.name; } else { return ""; } })(); if (selfPlayerInfo.playerId == p.id) { const rank = k + 1; if (1 != rank && null != self.winNode) { self.winNode.active = false; } } self.rankingNodes[k].getChildByName('name').getComponent(cc.Label).string = nameToDisplay; self.rankingNodes[k].getChildByName('score').getComponent(cc.Label).string = playerRichInfoDict[p.id].score; } }, onClose(evt) { if (this.node.parent) { this.node.parent.removeChild(this.node); } if (!this.onCloseDelegate) { return; } this.onCloseDelegate(); } });