637 lines
16 KiB
JavaScript
637 lines
16 KiB
JavaScript
var Ranking = {
|
|
|
|
preload: function() {
|
|
game.load.image('icon_fullscreen', '../../../resources/image/icon/fullscreen_white.png');
|
|
game.load.image('bg_white', '../../../resources/image/ui/white_rect.png');
|
|
},
|
|
|
|
create: function() {
|
|
this.dbConnectManager = new DBConnectManager();
|
|
|
|
this.jsonData = null;
|
|
this.timeType = Ranking.MODE_HOUR;
|
|
this.refreshTimeSec = Ranking.REFRESH_TIME_SEC;
|
|
|
|
this.showingPageIndex = 0;
|
|
this.recordArray = [];
|
|
|
|
this.dateTime = null;
|
|
this.date = "";
|
|
this.time = "";
|
|
this.getDateTimeNow();
|
|
|
|
// bg
|
|
this.game.stage.backgroundColor = '#4d4d4d';
|
|
|
|
var posY = 100;
|
|
this.bgTimeline = game.add.sprite(0, 60, "bg_white");
|
|
this.bgTimeline.width = GAME_SCREEN_SIZE.x;
|
|
this.bgTimeline.height = 80;
|
|
this.setBgColor(this.timeType);
|
|
|
|
|
|
// keyboard shortcut
|
|
this.keyboardShortcut = new KeyboardShortcut();
|
|
this.keyboardShortcut.addCallback(
|
|
Phaser.KeyCode.ESC, // keyCode
|
|
null, // keyDownHandler
|
|
(function() { this.back(); }).bind(this), // keyUpHandler
|
|
"ranking" // callerClassName
|
|
);
|
|
|
|
// top ui
|
|
var screenTopUI = new ScreenTopUI();
|
|
screenTopUI.makeBackButton( (function() { this.back(); }).bind(this) );
|
|
screenTopUI.makeFullScreenButton();
|
|
|
|
|
|
var resultTextStyle = textStyleBasic;
|
|
resultTextStyle.font = "bold 42px Arial";
|
|
|
|
this.textTitle = game.add.text(
|
|
GAME_SCREEN_SIZE.x / 2, 32,
|
|
sessionStorageManager.getPlayingAppKoreanName() + " - 수업시간 순위",
|
|
resultTextStyle
|
|
).setShadow(3, 3, 'rgba(0, 0, 0, 0.5)', 2);
|
|
this.textTitle.anchor.set(0.5);
|
|
this.textTitle.addColor("#ff6666", 0);
|
|
|
|
|
|
// date time
|
|
this.textDateTime = game.add.text(GAME_SCREEN_SIZE.x / 2, 104, "", resultTextStyle);
|
|
this.textDateTime.fontSize = 28;
|
|
this.textDateTime.fontWeight = "normal";
|
|
this.textDateTime.stroke = "#333333";
|
|
this.textDateTime.strokeThickness = 3;
|
|
//.setShadow(3, 3, 'rgba(0, 0, 0, 0.5)', 2);
|
|
this.textDateTime.anchor.set(0.5);
|
|
// this.textDateTime.addColor("#ff6666", 0);
|
|
this.printDateTime(this.dateTime);
|
|
|
|
|
|
// ranking text
|
|
var rankingTextOffsetY = 190;
|
|
this.rankingTexts = new Array();
|
|
for(var i = 0; i < Ranking.RANK_COUNT; i++) {
|
|
var posX = ( (i < 10) ? 120 : 80 + (GAME_SCREEN_SIZE.x / 2) );
|
|
var posY = rankingTextOffsetY + (i % 10) * 40;
|
|
this.rankingTexts[i] = new RankingText(
|
|
RankingText.PLACE_FOR_RANKING,
|
|
posX, posY,
|
|
sessionStorageManager.getPlayingAppID()
|
|
);
|
|
}
|
|
|
|
|
|
var buttonOffsetX = 320;
|
|
var buttonPositionY = 100;
|
|
var dateTimeButtonWidth = 40;
|
|
this.buttonPrevDate = this.makeArrowButton(
|
|
buttonOffsetX, buttonPositionY,
|
|
dateTimeButtonWidth, dateTimeButtonWidth,
|
|
"<",
|
|
(function() { this.decreaseDateTime(); }).bind(this)
|
|
);
|
|
// this.buttonPrevDate.inputEnabled = false;
|
|
this.buttonNextDate = this.makeArrowButton(
|
|
GAME_SCREEN_SIZE.x - buttonOffsetX, buttonPositionY,
|
|
dateTimeButtonWidth, dateTimeButtonWidth,
|
|
">",
|
|
(function() { this.increaseDateTime(); }).bind(this)
|
|
);
|
|
// this.buttonNextDate.inputEnabled = false;
|
|
|
|
var buttonTestDate = null;
|
|
if(runMode == MODE_DEBUG) {
|
|
buttonTestDate = this.makeArrowButton(
|
|
30, buttonPositionY,
|
|
50, 50,
|
|
"@",
|
|
(function() {
|
|
this.date = "2018-08-23";
|
|
this.time = "15:53:00";
|
|
this.dateTime = new Date(this.date + "T" + this.time);
|
|
this.getRecordToRankingServer();
|
|
}).bind(this)
|
|
);
|
|
}
|
|
|
|
|
|
buttonOffsetX = 30;
|
|
buttonPositionY = 370;
|
|
this.buttonPrevRanking = this.makeArrowButton(
|
|
buttonOffsetX, buttonPositionY,
|
|
50, 400,
|
|
"<",
|
|
(function() { this.onClickPrevRanking(); }).bind(this)
|
|
);
|
|
// this.buttonPrevRanking.setInputEnabled(false);
|
|
this.buttonNextRanking = this.makeArrowButton(
|
|
GAME_SCREEN_SIZE.x - buttonOffsetX, buttonPositionY,
|
|
50, 400,
|
|
">",
|
|
(function() { this.onClickNextRanking() }).bind(this)
|
|
);
|
|
// this.buttonNextRanking.setInputEnabled(false);
|
|
|
|
|
|
buttonPositionY = 650;
|
|
var buttonHour = this.makeTextButton(
|
|
game.world.centerX - 220, buttonPositionY,
|
|
"수업시간 순위",
|
|
(function() { this.onClickRankingHour(); }).bind(this)
|
|
);
|
|
// buttonHour.setInputEnabled(false);
|
|
var buttonDay = this.makeTextButton(
|
|
game.world.centerX, buttonPositionY,
|
|
"오늘의 순위",
|
|
(function() { this.onClickRankingDay(); }).bind(this)
|
|
);
|
|
// buttonDay.setInputEnabled(false);
|
|
var buttonMonth = this.makeTextButton(
|
|
game.world.centerX + 220, buttonPositionY,
|
|
"이달의 순위",
|
|
(function() { this.onClickRankingMonth(); }).bind(this)
|
|
);
|
|
// buttonMonth.setInputEnabled(false);
|
|
|
|
|
|
// bottom ui
|
|
this.screenBottomUI = new ScreenBottomUI();
|
|
// ScreenBottomUI.printLeftText("게임 진행 정보");
|
|
// var playingAppName = appInfoManager.getAppNameKorean(sessionStorageManager.getPlayingAppName());
|
|
// ScreenBottomUI.printCenterText(playingAppName);
|
|
// this.screenBottomUI.printCenterText("수업시간 순위");
|
|
this.screenBottomUI.printRightText(sessionStorageManager.getPlayerName());
|
|
|
|
this.getRecordToRankingServer();
|
|
game.time.events.loop(Phaser.Timer.SECOND * this.refreshTimeSec, this.getRecordToRankingServer, this);
|
|
},
|
|
|
|
|
|
back: function() {
|
|
location.href = '../../web/client/start.html';
|
|
},
|
|
|
|
makeArrowButton: function(x, y, width, height, buttonText, eventListener) {
|
|
var setting = new RoundRectButtonSetting(x, y, width, height);
|
|
setting.fontStyle.fontWeight = "bold";
|
|
setting.strokeColors = {
|
|
out: 0x444444, // 0xdddddd,
|
|
over: 0x333333, // 0xcccccc,
|
|
down: 0x222222, // 0xbbbbbb,
|
|
disabled: 0x333333
|
|
};
|
|
setting.buttonColors = {
|
|
out: 0x666666, // 0xffffff,
|
|
over: 0x444444, // 0xdddddd,
|
|
down: 0x333333, // 0xcccccc,
|
|
disabled: 0x333333
|
|
};
|
|
setting.textColors = {
|
|
out: "#fff", // "#000",
|
|
over: "#000",
|
|
down: "#000",
|
|
disabled: "#999"
|
|
};
|
|
|
|
return new RoundRectButton(setting, RoundRectButton.NONE_ICON, buttonText, eventListener);
|
|
},
|
|
|
|
makeTextButton: function(x, y, buttonText, eventListener) {
|
|
var setting = new RoundRectButtonSetting(x, y, 200, 100);
|
|
setting.fontStyle.fontWeight = "bold";
|
|
switch(buttonText) {
|
|
case "수업시간 순위":
|
|
setting.strokeColors = {
|
|
out: 0xddcccc,
|
|
over: 0xccaaaa,
|
|
down: 0xbb9999,
|
|
disabled: 0x333333
|
|
};
|
|
setting.buttonColors = {
|
|
out: 0xffeeee,
|
|
over: 0xddcccc,
|
|
down: 0xccaaaa,
|
|
disabled: 0x333333
|
|
};
|
|
setting.textColors = {
|
|
out: "#f00",
|
|
over: "#f00",
|
|
down: "#f00",
|
|
disabled: "#999"
|
|
};
|
|
break;
|
|
|
|
case "오늘의 순위":
|
|
setting.strokeColors = {
|
|
out: 0xccccdd,
|
|
over: 0xaaaacc,
|
|
down: 0x9999bb,
|
|
disabled: 0x333333
|
|
};
|
|
setting.buttonColors = {
|
|
out: 0xeeeeff,
|
|
over: 0xccccdd,
|
|
down: 0xaaaacc,
|
|
disabled: 0x333333
|
|
};
|
|
setting.textColors = {
|
|
out: "#00f",
|
|
over: "#00f",
|
|
down: "#00f",
|
|
disabled: "#999"
|
|
};
|
|
break;
|
|
|
|
case "이달의 순위":
|
|
setting.strokeColors = {
|
|
out: 0xccddcc,
|
|
over: 0xaaccaa,
|
|
down: 0x99bb99,
|
|
disabled: 0x333333
|
|
};
|
|
setting.buttonColors = {
|
|
out: 0xeeffee,
|
|
over: 0xccddcc,
|
|
down: 0xaaccaa,
|
|
disabled: 0x333333
|
|
};
|
|
setting.textColors = {
|
|
out: "#0f0",
|
|
over: "#0f0",
|
|
down: "#0f0",
|
|
disabled: "#999"
|
|
};
|
|
break;
|
|
|
|
}
|
|
|
|
return new RoundRectButton(setting, RoundRectButton.NONE_ICON, buttonText, eventListener);
|
|
},
|
|
|
|
getDateTimeType: function() {
|
|
var dateTimeType = -1;
|
|
switch(this.timeType) {
|
|
case Ranking.MODE_HOUR:
|
|
dateTimeType = DBConnectManager.TYPE_MY_RANKING_HOUR;
|
|
break;
|
|
|
|
case Ranking.MODE_DAY:
|
|
dateTimeType = DBConnectManager.TYPE_MY_RANKING_DAY;
|
|
break;
|
|
|
|
case Ranking.MODE_MONTH:
|
|
dateTimeType = DBConnectManager.TYPE_MY_RANKING_MONTH;
|
|
break;
|
|
}
|
|
|
|
return dateTimeType;
|
|
},
|
|
|
|
getRndInteger: function(min, max) {
|
|
return Math.floor(Math.random() * (max - min + 1) ) + min;
|
|
},
|
|
|
|
getSampleRankingRecord: function() {
|
|
var rankingRecordManager = new RankingRecordManager();
|
|
|
|
var playerNameList = [
|
|
"김가람", "강가온", "고길", "한나라", "강나래",
|
|
"오나예", "박노아", "부노을", "한다은", "최두루",
|
|
"신두나", "최해솔", "김모든", "설보라", "민모든",
|
|
"이보람", "이빛길", "정새론", "한새얀", "채세련",
|
|
"태슬예", "진승아", "강시원", "김아롱", "박알찬",
|
|
"김다은", "황세련", "강원", "지소은", "남궁민"
|
|
];
|
|
var shuffleList = Phaser.ArrayUtils.shuffle(playerNameList);
|
|
for(var i = 0; i < 30; i++) {
|
|
var record = new RankingRecord(
|
|
i + 1, // rank
|
|
i + 1, // playerID
|
|
shuffleList[i], // playerName
|
|
this.getRndInteger(1000 - (i + 1) * 20, 1000 - (i + 1) * 10) // record
|
|
);
|
|
rankingRecordManager.push(record);
|
|
}
|
|
|
|
return rankingRecordManager;
|
|
},
|
|
|
|
getRecordToRankingServer: function() {
|
|
this.recordArray == [];
|
|
|
|
if(isExperiencePlayerAccount()) {
|
|
this.showRanking(this.getSampleRankingRecord());
|
|
return;
|
|
}
|
|
|
|
this.dbConnectManager.requestRanking(
|
|
this.getDateTimeType(),
|
|
sessionStorageManager.getMaestroID(),
|
|
this.date,
|
|
this.time,
|
|
(function(type, rankingRecordManager) {
|
|
this.showRanking(rankingRecordManager);
|
|
}).bind(this)
|
|
);
|
|
},
|
|
|
|
onClickRankingHour: function() {
|
|
this.timeType = Ranking.MODE_HOUR;
|
|
this.textTitle.text = sessionStorageManager.getPlayingAppKoreanName() + " - 수업시간 순위";
|
|
this.textTitle.addColor("#ff6666", 0);
|
|
|
|
this.printDateTime(this.dateTime);
|
|
|
|
this.getRecordToRankingServer();
|
|
this.setFirstPageIndex();
|
|
this.setBgColor(this.timeType);
|
|
},
|
|
|
|
onClickRankingDay: function() {
|
|
this.timeType = Ranking.MODE_DAY;
|
|
this.textTitle.text = sessionStorageManager.getPlayingAppKoreanName() + " - 오늘의 순위";
|
|
this.textTitle.addColor("#9999ff", 0);
|
|
|
|
this.printDateTime(this.dateTime);
|
|
|
|
this.getRecordToRankingServer();
|
|
this.setFirstPageIndex();
|
|
this.setBgColor(this.timeType);
|
|
},
|
|
|
|
onClickRankingMonth: function() {
|
|
this.timeType = Ranking.MODE_MONTH;
|
|
this.textTitle.text = sessionStorageManager.getPlayingAppKoreanName() + " - 이달의 순위";
|
|
this.textTitle.addColor("#99ff99", 0);
|
|
|
|
this.printDateTime(this.dateTime);
|
|
|
|
this.getRecordToRankingServer();
|
|
this.setFirstPageIndex();
|
|
this.setBgColor(this.timeType);
|
|
},
|
|
|
|
showRanking: function(rankingRecordManager) {
|
|
this.recordArray = [];
|
|
|
|
if(sessionStorageManager.getMaestroAccountType() == 101) {
|
|
this.recordArray = this.getDummyRankList();
|
|
this.printRanking();
|
|
return;
|
|
}
|
|
|
|
if(rankingRecordManager.getCount() == 0) {
|
|
this.setFirstPageIndex();
|
|
this.printRanking();
|
|
return;
|
|
}
|
|
|
|
var rankingListCount = rankingRecordManager.getCount();
|
|
for(var i = 0; i < rankingListCount; i++) {
|
|
var record = [];
|
|
// record[0] = jsonRankingList[i]['UserID'];
|
|
record[0] = rankingRecordManager.getPlayerIDAt(i); // playerID
|
|
record[1] = i + 1; // ranking
|
|
record[2] = rankingRecordManager.getPlayerNameAt(i);
|
|
record[3] = rankingRecordManager.getBestRecordAt(i);
|
|
// console.log("record : " + record[0] + ", " + record[1] + ", " + record[2]);
|
|
|
|
this.recordArray.push(record);
|
|
}
|
|
|
|
this.printDateTime(this.dateTime);
|
|
this.printRanking();
|
|
},
|
|
|
|
emptyRanking: function() {
|
|
for(var i = 0; i < Ranking.RANK_COUNT; i++) {
|
|
this.rankingTexts[i].reset();
|
|
}
|
|
},
|
|
|
|
printRanking: function() {
|
|
this.emptyRanking();
|
|
this.updateRankingNavigationButtons();
|
|
|
|
if(this.recordArray.length == 0)
|
|
return;
|
|
|
|
// timezone changed (ex: 2pm -> 3pm)
|
|
if(this.showingPageIndex * 20 > this.recordArray.length)
|
|
this.setFirstPageIndex();
|
|
|
|
// print
|
|
for(var i = 0; i < Ranking.RANK_COUNT; i++) {
|
|
var index = this.showingPageIndex * 20 + i;
|
|
var record = this.recordArray[index];
|
|
if(typeof record == "undefined")
|
|
break;
|
|
this.rankingTexts[i].setContents(record[0], record[1], record[2], record[3]);
|
|
}
|
|
|
|
this.updateRankingNavigationButtons();
|
|
},
|
|
|
|
updateRankingNavigationButtons: function() {
|
|
if(this.recordArray.length == 0) {
|
|
this.buttonPrevRanking.text.text = "X";
|
|
this.buttonNextRanking.text.text = "X";
|
|
return;
|
|
}
|
|
if(this.showingPageIndex > 0)
|
|
this.buttonPrevRanking.text.text = "<";
|
|
else
|
|
this.buttonPrevRanking.text.text = "X";
|
|
|
|
if((this.showingPageIndex + 1) * 20 < this.recordArray.length)
|
|
this.buttonNextRanking.text.text = ">";
|
|
else
|
|
this.buttonNextRanking.text.text = "X";
|
|
},
|
|
|
|
getDummyRankList: function() {
|
|
var dummyRankList = [
|
|
[ '1', 'test1', '600' ],
|
|
[ '2', 'test2', '500' ],
|
|
[ '3', 'test3', '450' ],
|
|
[ '4', 'test4', '400' ],
|
|
[ '5', 'test5', '350' ],
|
|
[ '6', 'test6', '300' ],
|
|
[ '7', 'test7', '250' ],
|
|
[ '8', 'test8', '200' ],
|
|
[ '9', 'test9', '150' ],
|
|
[ '10', 'test10', '100' ],
|
|
[ '11', 'test11', '90' ],
|
|
[ '12', 'test12', '80' ],
|
|
[ '13', 'test13', '70' ],
|
|
[ '14', 'test14', '60' ],
|
|
[ '15', 'test15', '50' ],
|
|
[ '16', 'test16', '45' ],
|
|
[ '17', 'test17', '40' ],
|
|
[ '18', 'test18', '35' ],
|
|
[ '19', 'test19', '30' ],
|
|
[ '20', 'test20', '25' ],
|
|
[ '21', 'test21', '20' ],
|
|
[ '22', 'test22', '15' ],
|
|
[ '23', 'test23', '10' ],
|
|
[ '24', 'test24', '9' ],
|
|
[ '25', 'test25', '8' ],
|
|
[ '26', 'test26', '7' ],
|
|
[ '27', 'test27', '6' ],
|
|
[ '28', 'test28', '5' ],
|
|
[ '29', 'test29', '4' ],
|
|
[ '30', 'test30', '3' ],
|
|
[ '31', 'test31', '2' ],
|
|
[ '32', 'test32', '1' ],
|
|
];
|
|
return dummyRankList;
|
|
},
|
|
|
|
getDateTimeNow: function() {
|
|
var now = new Date();
|
|
var hourTimeText = DateUtil.getYYYYMMDD(now) + "T" + DateUtil.getFullHours(now) + ":00:00";
|
|
this.dateTime = new Date(hourTimeText);
|
|
this.date = DateUtil.getYYYYMMDD(this.dateTime);
|
|
this.time = DateUtil.getHHMMSS(this.dateTime);
|
|
},
|
|
|
|
setDateTime: function(dateTime) {
|
|
this.date = DateUtil.getYYYYMMDD(dateTime);
|
|
this.time = DateUtil.getHHMMSS(dateTime);
|
|
},
|
|
|
|
increaseDateTime: function() {
|
|
switch(this.timeType) {
|
|
case Ranking.MODE_HOUR:
|
|
this.dateTime.setHours(this.dateTime.getHours() + 1);
|
|
break;
|
|
|
|
case Ranking.MODE_DAY:
|
|
this.dateTime.setDate(this.dateTime.getDate() + 1);
|
|
break;
|
|
|
|
case Ranking.MODE_MONTH:
|
|
this.dateTime.setMonth(this.dateTime.getMonth() + 1);
|
|
break;
|
|
}
|
|
this.setDateTime(this.dateTime);
|
|
|
|
this.printDateTime(this.dateTime);
|
|
this.getRecordToRankingServer();
|
|
},
|
|
|
|
decreaseDateTime: function() {
|
|
switch(this.timeType) {
|
|
case Ranking.MODE_HOUR:
|
|
this.dateTime.setHours(this.dateTime.getHours() - 1);
|
|
break;
|
|
|
|
case Ranking.MODE_DAY:
|
|
this.dateTime.setDate(this.dateTime.getDate() - 1);
|
|
break;
|
|
|
|
case Ranking.MODE_MONTH:
|
|
this.dateTime.setMonth(this.dateTime.getMonth() - 1);
|
|
break;
|
|
}
|
|
this.setDateTime(this.dateTime);
|
|
|
|
this.printDateTime(this.dateTime);
|
|
this.getRecordToRankingServer();
|
|
},
|
|
|
|
getDatetimeHour: function() {
|
|
return this.dateTime.getHours();
|
|
},
|
|
|
|
getDatetimeHourWith2Digits: function() {
|
|
return ("0" + this.dateTime.getHours()).slice(-2);
|
|
},
|
|
|
|
getYYYYMMDDHHText: function(dateTime) {
|
|
return DateUtil.getFullYear(dateTime) + "년 "
|
|
+ DateUtil.getFullMonth(dateTime) + "월 "
|
|
+ DateUtil.getFullDate(dateTime) + "일, "
|
|
+ DateUtil.getFullHours(dateTime) + "시";
|
|
},
|
|
|
|
getYYYYMMDDText: function(dateTime) {
|
|
return DateUtil.getFullYear(dateTime) + "년 "
|
|
+ DateUtil.getFullMonth(dateTime) + "월 "
|
|
+ DateUtil.getFullDate(dateTime) + "일";
|
|
},
|
|
|
|
getYYYYMMText: function(dateTime) {
|
|
return DateUtil.getFullYear(dateTime) + "년 "
|
|
+ DateUtil.getFullMonth(dateTime) + "월 ";
|
|
},
|
|
|
|
printDateTime: function(dateTime) {
|
|
// console.log(this.timeType);
|
|
// console.log((this.dateTime);
|
|
|
|
switch(this.timeType) {
|
|
case Ranking.MODE_HOUR:
|
|
this.textDateTime.text = this.getYYYYMMDDHHText(dateTime);
|
|
break;
|
|
|
|
case Ranking.MODE_DAY:
|
|
this.textDateTime.text = this.getYYYYMMDDText(dateTime);
|
|
break;
|
|
|
|
case Ranking.MODE_MONTH:
|
|
this.textDateTime.text = this.getYYYYMMText(dateTime);
|
|
break;
|
|
}
|
|
},
|
|
|
|
onClickPrevRanking: function() {
|
|
if(this.recordArray.length == 0)
|
|
return;
|
|
|
|
this.showingPageIndex--;
|
|
if(this.showingPageIndex < 0)
|
|
this.showingPageIndex = 0;
|
|
|
|
this.printRanking();
|
|
},
|
|
|
|
onClickNextRanking: function() {
|
|
if(this.recordArray.length == 0)
|
|
return;
|
|
|
|
if((this.showingPageIndex + 1) * 20 < this.recordArray.length)
|
|
this.showingPageIndex++;
|
|
this.printRanking();
|
|
},
|
|
|
|
setFirstPageIndex: function() {
|
|
this.showingPageIndex = 0;
|
|
},
|
|
|
|
setBgColor: function(timeType) {
|
|
switch(timeType) {
|
|
case Ranking.MODE_HOUR:
|
|
this.bgTimeline.tint = 0x5f4d4d;
|
|
break;
|
|
|
|
case Ranking.MODE_DAY:
|
|
this.bgTimeline.tint = 0x4d4d5f;
|
|
break;
|
|
|
|
case Ranking.MODE_MONTH:
|
|
this.bgTimeline.tint = 0x4d5f4d;
|
|
break;
|
|
}
|
|
},
|
|
}
|
|
|
|
Ranking.MODE_HOUR = "mode_hour";
|
|
Ranking.MODE_DAY = "mode_day";
|
|
Ranking.MODE_MONTH = "mode_month";
|
|
|
|
Ranking.REFRESH_TIME_SEC = 5;
|
|
|
|
Ranking.RANK_COUNT = 20; |