增加天梯排行榜

This commit is contained in:
yaoyanwei
2025-08-26 14:50:06 +08:00
parent 6fa45b8f74
commit 8be2bf9dec
10 changed files with 491 additions and 8 deletions

View File

@@ -7,6 +7,7 @@ const Validator = require('../tools/validator.tool');
const AuthTool = require('../authorization/auth.tool');
const Email = require('../tools/email.tool');
const config = require('../config');
const ladderModel = require('../ladder/ladder.model');
//Register new user
exports.RegisterUser = async (req, res, next) => {
@@ -62,6 +63,9 @@ exports.RegisterUser = async (req, res, next) => {
user.elo = config.start_elo;
user.xp = 0;
// Initialize ladder data
user = ladderModel.initializePlayerLadder(user);
user.account_create_time = new Date();
user.last_login_time = new Date();
user.last_online_time = new Date();
@@ -389,8 +393,7 @@ exports.SendEmail = async (req, res) =>{
};
// reward is an object containing rewards to give
exports.GiveReward = async(req, res) =>
{
exports.GiveReward = async(req, res) =>{
var userId = req.params.userId;
var reward = req.body.reward;

View File

@@ -28,6 +28,14 @@ const userSchema = new Schema({
victories: {type: Number, default: 0},
defeats: {type: Number, default: 0},
// Ladder system fields
rankId: {type: Number, default: 1}, // Current rank ID
stars: {type: Number, default: 0}, // Current stars
rankScore: {type: Number, default: 0}, // Rank score for王者分数 mechanism
winStreak: {type: Number, default: 0}, // Win streak counter
totalWins: {type: Number, default: 0}, // Total wins for leaderboard
lastWinDeck: {type: Object, default: null}, // Last winning deck for leaderboard
cards: [{ tid: String, variant: String, quantity: Number, _id: false }],
packs: [{ tid: String, quantity: Number, _id: false }],
decks: [{ type: Object, _id: false }],