mirror of
https://github.com/genxium/DelayNoMore
synced 2024-12-26 11:48:56 +00:00
104 lines
2.4 KiB
JavaScript
104 lines
2.4 KiB
JavaScript
|
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();
|
||
|
}
|
||
|
});
|