军团bug和备注

This commit is contained in:
mamengke01
2021-02-23 11:44:20 +08:00
parent 0fc828793a
commit 6759a7dcb1
9 changed files with 162 additions and 49 deletions
+22 -19
View File
@@ -12,43 +12,46 @@ import { getArmyBossRank } from '../pubUtils/data';
import { getMailContent } from '../services/mailService';
import { pushMail } from '../pubUtils/interface';
import { MAIL_TYPE } from '../consts';
import { GUILD_BOSS_STATUS } from '../consts/constModules/guildConst';
/**
*
* @param bossInstance
* @param roleId
*/
export async function getBossInstanceInfo(bossInstance: BossInstanceType, roleId:string) {
let { warId, ranks, bossHp, bossLv, winWarId, winTime, roleIdRecords, guildCode } = bossInstance;
let { warId, ranks, bossHp, bossLv, winWarId, winTime, roleIdRecords, guildCode, startTime, winBossLv } = bossInstance;
ranks.sort(function(a, b) {
return b.score - a.score + a.time - b.time;
});
let result:any = {};
//1:等待团长开启,2:今日已开启,且boss通关,3:开启中
if ( bossInstance.bossHp <= 0 ) {
if (!!winWarId && winTime > getTodayZeroPoint() && roleIdRecords.indexOf(roleId) == -1) {
result = { winWarId };
await BossInstanceModel.recordRoleIdWhenCheck(guildCode, roleId);
}
if (bossInstance.startTime < getTodayZeroPoint()) {
result.status = 1;
if (!!winWarId && winTime > getTodayZeroPoint() && roleIdRecords.indexOf(roleId) == -1) {
//今日通关过,且首次点开boss界面,提示某某boss已通关
result = { showParam: { winWarId, winBossLv } };
await BossInstanceModel.recordRoleIdWhenCheck(guildCode, roleId);
}
if ( bossHp <= 0 ) {
result = { warId };
if (startTime < getTodayZeroPoint()) {
//今日未开启过boss,等待开启
result.status = GUILD_BOSS_STATUS.WAIT_OPEN;
return result;
} else {
result.status = 2;
//今日已开启,且boss通关
result.status = GUILD_BOSS_STATUS.OPENED;
return result;
}
}
let isBattled = false;
let myRank = {};
let lastRanks = ranks.map(({roleId: battleRoleId, score, time}, index) => {
if (roleId == battleRoleId) {
myRank = {roleId, score, rankLv: index + 1};
myRank = { roleId, score, rankLv: index + 1 };
if (time >= getTodayZeroPoint())
isBattled = true;
}
return {roleId, score, rankLv: index + 1};
});
return {warId, ranks: lastRanks, myRank, bossHp, status: 3, isBattled, bossLv};
return { warId, ranks: lastRanks, myRank, bossHp, status: GUILD_BOSS_STATUS.OPEN, isBattled, bossLv };
}
/**
* 战斗结束返回
@@ -57,16 +60,16 @@ export async function getBossInstanceInfo(bossInstance: BossInstanceType, roleId
* @param battleNum
*/
export async function getBossInstanceWhenEnd(bossInstance: BossInstanceType, roleId:string, battleNum:number) {
let { warId, ranks, bossHp, winWarId, guildCode, recordRanks, winNum, bossLv } = bossInstance;
let { warId, ranks, bossHp, winWarId, guildCode, recordRanks, winNum, bossLv, winBossLv } = bossInstance;
let pushRanks;
let result:any = {};
if (battleNum == winNum) {
pushRanks = deepCopy(recordRanks);
result = {warId: winWarId, bossHp: 0, bossLv, status: 3};
result = {warId: winWarId, bossHp: 0, bossLv: winBossLv, status: GUILD_BOSS_STATUS.OPEN};
await BossInstanceModel.recordRoleIdWhenCheck(guildCode, roleId);
} else {
pushRanks = deepCopy(ranks);
result = {warId, bossHp, bossLv, status: 3};
result = {warId, bossHp, bossLv, status: GUILD_BOSS_STATUS.OPEN};
}
pushRanks.sort(function(a, b) {
return b.score - a.score + a.time - b.time;
@@ -99,7 +102,7 @@ export async function bossResult(code: string, serverId: number, dataName: strin
let res:any = await lockData(serverId, dataName, code);//加锁
if (!!res.err)
return true;
let {winSettled, ranks, num, warId, bossHp} = await BossInstanceModel.findBossInstance(code);//锁定关卡信息
let {winSettled, ranks, num, warId, bossHp, bossLv} = await BossInstanceModel.findBossInstance(code);//锁定关卡信息
if (winSettled) {
res.releaseCallback();//解锁
await BossInstanceModel.recordRoleIdWhenCheck(code, roleId);
@@ -115,7 +118,7 @@ export async function bossResult(code: string, serverId: number, dataName: strin
res.releaseCallback();//解锁
return true;
}
let { recordRanks } = await BossInstanceModel.updateBossInstance(code, { bossHp: 0, winSettled: true, ranks, recordRanks: ranks, winNum: num, winWarId: warId, roleIdRecords:[roleId]}, );
let { recordRanks } = await BossInstanceModel.updateBossInstance(code, { bossHp: 0, winSettled: true, ranks, recordRanks: ranks, winNum: num, winWarId: warId, winBossLv: bossLv, roleIdRecords:[roleId]}, );
await pushBossHpMessage(code, serverId, 0, true);
res.releaseCallback();//数据修改解锁
recordRanks.sort(function(a, b) {
@@ -180,7 +183,7 @@ export async function checkMemberExists(code: string, serverId:number, roleId: s
if(!battleRecord || battleRecord.status != 0 || roleId != battleRecord.roleId) {
return false;
}
addBossInstance(code, serverId, roleId);
await addBossInstance(code, serverId, roleId);
flag = true;
}
return flag;