添加排行榜
This commit is contained in:
@@ -3,14 +3,15 @@
|
||||
*/
|
||||
import { PvpDefenseModel, Heroes, OppPlayers, Robot, PvpDefenseType, HeroScores } from '../db/PvpDefense';
|
||||
import { RoleType } from '../db/Role';
|
||||
import { PVP_HERO_POS, ROBOT_NAME } from '../consts';
|
||||
import { PVP_HERO_POS, ROBOT_NAME, REDIS_KEY } from '../consts';
|
||||
|
||||
import { dicPvpOpponent, DicPvpOpponent } from "../pubUtils/dictionary/DicPvpOpponent";
|
||||
import { getRandomIndexByLen, genCode, getRandomByLen } from '../pubUtils/util';
|
||||
import { oppPlayersInter } from '../pubUtils/interface';
|
||||
import { oppPlayersInter, RankParam } from '../pubUtils/interface';
|
||||
import { gameData, getPLvByScore } from "../pubUtils/data";
|
||||
import { PVP } from '../pubUtils/dicParam';
|
||||
import { SystemConfigModel } from '../db/SystemConfig'
|
||||
import { setRank, getMyRank } from './redisService';
|
||||
const _ = require('underscore');
|
||||
|
||||
|
||||
@@ -33,7 +34,12 @@ export async function initPvpInfo(role: RoleType) {
|
||||
let {warId, seasonNum } = await SystemConfigModel.findSystemConfig();
|
||||
let challengeCnt = PVP.PVP_CHALLENGE_COUNTS;
|
||||
let result = await PvpDefenseModel.createPvpDefense({ roleId: role.roleId, roleName: role.roleName, role: role._id, heroes, oppPlayers, defCe: role.topFiveCe, seasonNum, warId, challengeCnt });
|
||||
//加入排行榜 TODO
|
||||
|
||||
//加入排行榜
|
||||
let { roleId, roleName, lv, vLv, headHid, sHid, title } = role;
|
||||
let params = new RankParam(roleName, lv, vLv, headHid, sHid, title);
|
||||
await setRank(REDIS_KEY.PVP_RANK, 0, roleId, result.score, result.updatedAt.getTime(), params);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -51,7 +57,7 @@ export async function checkPvp(role: RoleType) {
|
||||
* @param oppPlayers pvpDefense表中的oppPlayers字段,需要populate过的
|
||||
* @param pLv 玩家本人的队伍等级
|
||||
*/
|
||||
export function getEnemies(oppPlayers: OppPlayers[], winStreakNum: number) {
|
||||
export async function getEnemies(oppPlayers: OppPlayers[], winStreakNum: number) {
|
||||
let result = new Array<oppPlayersInter>();
|
||||
for(let {pos, isRobot, oppDef, robot} of oppPlayers) {
|
||||
let dicOpponent = dicPvpOpponent.get(pos);
|
||||
@@ -68,10 +74,11 @@ export function getEnemies(oppPlayers: OppPlayers[], winStreakNum: number) {
|
||||
let role = <RoleType>opp.role;
|
||||
let { roleId, roleName, headHid, sHid } = role;
|
||||
let { pLv, defCe } = opp;
|
||||
let rankLv = await getMyRank(REDIS_KEY.PVP_RANK, 0, roleId);
|
||||
result.push({
|
||||
pos, roleId, roleName, headHid, sHid, pLv, defCe,
|
||||
addScore: dicOpponent.score,
|
||||
rankLv: 0, // TODO读取排名
|
||||
rankLv, // 读取排名
|
||||
plusScore: getPlusScore(winStreakNum)
|
||||
});
|
||||
}
|
||||
@@ -108,7 +115,9 @@ async function matchPlayer(oppPlayers: OppPlayers[], roleId: string, pLv: number
|
||||
let result = range[index];
|
||||
if(!result) return false;
|
||||
if(result.roleId == roleId) {
|
||||
console.log(range.length)
|
||||
range.splice(index, 1);
|
||||
console.log(JSON.stringify(range))
|
||||
if(range.length <= 0) return false;
|
||||
index = getRandomIndexByLen(range.length);
|
||||
result = range[index];
|
||||
|
||||
Reference in New Issue
Block a user