寻宝助战次数限制; 调整寻宝字段

This commit is contained in:
liangtongchuan
2020-11-24 20:31:16 +08:00
parent 991d193eab
commit 7cf30b7ddb
2 changed files with 25 additions and 5 deletions

View File

@@ -31,6 +31,8 @@ class ComTeam {
ceLimit: number;
// boss 血量
bossHp: number;
// 品质
quality: number;
}
export class ComBattleHandler {
constructor(private app: Application) {
@@ -39,6 +41,7 @@ export class ComBattleHandler {
async createTeam(msg: {blueprtId: number, heroes: [ number ], pub: boolean, ceLimit: number}, session: BackendSession) {
let roleId = session.get('roleId');
let roleName = session.get('roleName');
let sid = session.get('sid');
let teamCode = session.get('teamCode');
const { blueprtId, heroes, pub, ceLimit } = msg;
@@ -54,13 +57,14 @@ export class ComBattleHandler {
let blueprt = consumeGoods.find(good => good.id === blueprtId && good.count >= 1);
if (!blueprt) return resResult(STATUS.COM_BATTLE_BLUEPRT_NOT_FOUND);
// 检查是否有已创建未结束的寻宝,预先占用一张藏宝图
let teams = await ComBattleTeamModel.findTeamByCapAndStatus(roleId, COM_TEAM_STATUS.FIGHTING);
let teams = await ComBattleTeamModel.getTeamByCapAndStatus(roleId, COM_TEAM_STATUS.FIGHTING);
if (teams && blueprt.count <= teams.length) return resResult(STATUS.COM_BATTLE_BLUEPRT_NOT_ENOUGH);
// TODO: 检查武将是否拥有
// 创建队伍数据结构
let comTeam = new ComTeam();
comTeam.blueprtId = blueprtId;
comTeam.quality = goodData.quality;
comTeam.capId = roleId;
comTeam.pub = pub;
comTeam.teamCode = teamCode;
@@ -77,6 +81,7 @@ export class ComBattleHandler {
roleStatus.roleId = roleId;
roleStatus.isReady = true;
roleStatus.totalDmg = 0;
roleStatus.roleName = roleName;
comTeam.roleStatus = [roleStatus];
this.teamMap.set(teamCode, comTeam);
@@ -96,16 +101,16 @@ export class ComBattleHandler {
async joinTeam(msg: {teamCode: string, isFrd: boolean}, session: BackendSession) {
let roleId = session.get('roleId');
let roleName = session.get('roleName');
let sid = session.get('sid');
console.log('teamMap:' + JSON.stringify(this.teamMap));
let { teamCode, isFrd } = msg;
let teamStatus = this.teamMap.get(teamCode);
if (!teamStatus || teamStatus.status !== 0 || teamStatus.roleIds.length === 3) return resResult(STATUS.COM_BATTLE_MEMBER_LIMIT);
if (teamStatus.roleIds.indexOf(roleId) !== -1) return resResult(STATUS.COM_BATTLE_DUP_ENTER);
// TODO: 助战次数限制
let { lv, headHid, topFiveCe } = await Role.findByRoleId(roleId);
let { quality } = getGoodById(teamStatus.blueprtId);
let { assistanceLevel } = getComBtlSetByQuality(quality);
let { assistanceLevel, assistanceTime } = getComBtlSetByQuality(quality);
if (lv < COM_TEAM_ENABLE_LV) {
return resResult(STATUS.COM_BATTLE_LV_NOT_ENOUGH);
} else if (lv < assistanceLevel) {
@@ -114,12 +119,16 @@ export class ComBattleHandler {
return resResult(STATUS.COM_BATTLE_CE_LIMIT);
}
let teams = await ComBattleTeamModel.getTeamByRoleAndTime(roleId, teamStatus.quality, new Date(new Date().setHours(0, 0, 0, 0)));
if (teams.length >= assistanceTime) resResult(STATUS.COM_BATTLE_ASSIST_NOT_ENOUGH);
let roleStatus = new RoleStatus();
roleStatus.heroes = [];
roleStatus.isCap = false;
roleStatus.headHid = headHid || 1;
roleStatus.topFiveCe = topFiveCe || 0;
roleStatus.roleId = roleId;
roleStatus.roleName = roleName;
roleStatus.isFrd = isFrd;
roleStatus.isReady = false;
roleStatus.totalDmg = 0;