38 lines
1.1 KiB
TypeScript
38 lines
1.1 KiB
TypeScript
/**
|
|
* 体力系统
|
|
*/
|
|
import { PvpDefenseModel, Heroes, OppPlayers } from '../db/pvpDefense';
|
|
import { RoleType } from '../db/Role';
|
|
import { PVP_PLAYER_POS, PVP_HERO_POS } from '../consts';
|
|
|
|
export async function initPvpInfo(role: RoleType) {
|
|
let heroes: Array<Heroes> = [];
|
|
//初始化最强5人阵容
|
|
for (let i = 0; i < role.topFive.length; i++) {
|
|
let item = role.topFive[i];
|
|
if (item.hid) {
|
|
heroes.push({
|
|
actorId: item.hid,
|
|
hero: item.hero,
|
|
ce: item.ce,
|
|
dataId: PVP_HERO_POS.START + i,
|
|
order: i + 1,
|
|
});
|
|
}
|
|
}
|
|
//初始化对手人阵容TODO
|
|
let oppPlayers: Array<OppPlayers> = [];
|
|
|
|
let result = await PvpDefenseModel.createPvpDefense({ roleId: role.roleId, roleName: role.roleName, heroes, oppPlayers, defCe: role.topFiveCe });
|
|
//加入排行榜 TODO
|
|
return result;
|
|
}
|
|
|
|
export async function checkPvp(role: RoleType) {
|
|
let result = await PvpDefenseModel.findByRoleId(role.roleId);
|
|
if (!!result)
|
|
return result;
|
|
result = await initPvpInfo(role);
|
|
return result;
|
|
}
|