将刷新添加入初始
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
import {Application, BackendSession} from 'pinus';
|
||||
const _ = require('underscore');
|
||||
import { gameData } from '../../../pubUtils/data';
|
||||
import { checkPvp } from '../../../pubUtils/pvpUtil';
|
||||
import { checkPvp, initPvpInfo } from '../../../pubUtils/pvpUtil';
|
||||
import { RoleModel } from '../../../db/Role';
|
||||
import { STATUS } from '../../../consts/statusCode';
|
||||
import { resResult } from '../../../pubUtils/util';
|
||||
@@ -16,6 +16,13 @@ export class PvpHandler {
|
||||
constructor(private app: Application) {
|
||||
}
|
||||
|
||||
async test(msg: {}, session: BackendSession) {
|
||||
let roleId = session.get('roleId');
|
||||
let role = await RoleModel.findByRoleId(roleId);
|
||||
const result = await initPvpInfo(role);
|
||||
return resResult(STATUS.SUCCESS, {result});
|
||||
}
|
||||
|
||||
async getData (msg: {}, session: BackendSession) {
|
||||
let roleId = session.get('roleId');
|
||||
let roleName = session.get('roleName');
|
||||
|
||||
@@ -1,50 +0,0 @@
|
||||
import { dicPvpOpponent } from "../pubUtils/dictionary/DicPvpOpponent";
|
||||
import { OppPlayers, PvpDefenseModel } from "../db/PvpDefense";
|
||||
import { getRandomIndexByLen } from '../pubUtils/util';
|
||||
import { RoleType } from "../db/Role";
|
||||
|
||||
export async function refreshEnemies(role: RoleType, score: number, pLv: number) {
|
||||
let { roleId, topFiveCe } = role;
|
||||
let oppPlayers = new Array<OppPlayers>();
|
||||
let opp = dicPvpOpponent.values()
|
||||
for(let { id, maxLv, minLv, ratio } of opp) {
|
||||
let flag = false; // 是否筛选成功
|
||||
if(score > 3000) {
|
||||
flag = await matchPlayer(oppPlayers,roleId, id, pLv + minLv, pLv + maxLv);
|
||||
// TODO 当前后分数段没有时,返回前一名的玩家
|
||||
if(!flag) flag = matchRobot(oppPlayers, topFiveCe, ratio);
|
||||
} else {
|
||||
flag = matchRobot(oppPlayers, topFiveCe, ratio);
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
|
||||
return oppPlayers;
|
||||
}
|
||||
|
||||
async function matchPlayer(oppPlayers: OppPlayers[], roleId: string, pos: number, minLv: number, maxLv: number ) {
|
||||
let range = await PvpDefenseModel.findByTeamLv(minLv, maxLv);
|
||||
if(range.length <= 0) return false;
|
||||
|
||||
let index = getRandomIndexByLen(range.length);
|
||||
let result = range[index];
|
||||
if(!result) return false;
|
||||
if(result.roleId == roleId) {
|
||||
range.splice(index, 1);
|
||||
if(range.length <= 0) return false;
|
||||
index = getRandomIndexByLen(range.length);
|
||||
result = range[range.length];
|
||||
}
|
||||
|
||||
oppPlayers.push({
|
||||
oppDef: result._id,
|
||||
pos,
|
||||
isRobot: false,
|
||||
robot: null
|
||||
});
|
||||
return true;
|
||||
}
|
||||
|
||||
function matchRobot(oppPlayers: OppPlayers[], ce: number, ratio: number) {
|
||||
return true
|
||||
}
|
||||
Reference in New Issue
Block a user