53 lines
1.9 KiB
TypeScript
53 lines
1.9 KiB
TypeScript
import {Application, BackendSession} from 'pinus';
|
|
const _ = require('underscore');
|
|
import { gameData } from '../../../pubUtils/data';
|
|
import { checkPvp, initPvpInfo, refreshEnemies, getEnemies } from '../../../pubUtils/pvpUtil';
|
|
import { RoleModel, RoleType } from '../../../db/Role';
|
|
import { STATUS } from '../../../consts/statusCode';
|
|
import { resResult } from '../../../pubUtils/util';
|
|
import { SystemConfigModel } from '../../../db/SystemConfig'
|
|
|
|
import { PvpDefenseModel } from '../../../db/PvpDefense';
|
|
export default function(app: Application) {
|
|
return new PvpHandler(app);
|
|
}
|
|
|
|
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');
|
|
let sid = session.get('sid');
|
|
let serverId = session.get('serverId');
|
|
let result = await PvpDefenseModel.findByRoleIdIncludeAll(roleId);
|
|
let system = await SystemConfigModel.findSystemConfig();
|
|
|
|
return resResult(STATUS.SUCCESS, { data: result });
|
|
}
|
|
|
|
|
|
// TODO 刷新
|
|
async refreshOppPlayer (msg: {}, session: BackendSession) {
|
|
let roleId = session.get('roleId');
|
|
|
|
let pvpDefense = await PvpDefenseModel.findByRoleIdIncludeAll(roleId);
|
|
|
|
let role = <RoleType>pvpDefense.role;
|
|
let oppPlayers = await refreshEnemies(role, pvpDefense.score, pvpDefense.pLv);
|
|
|
|
pvpDefense = await PvpDefenseModel.updateInfoAndInclude(roleId, { oppPlayers });
|
|
let result = getEnemies(pvpDefense.oppPlayers, pvpDefense.winStreakNum);
|
|
|
|
return resResult(STATUS.SUCCESS, { data: result });
|
|
}
|
|
}
|