更新json和部分dictionary定义

This commit is contained in:
luying
2021-01-06 17:16:15 +08:00
parent 44ebf774b9
commit 514a8de340
25 changed files with 4240 additions and 28 deletions
+50
View File
@@ -0,0 +1,50 @@
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
}