boss等级

This commit is contained in:
mamengke01
2021-01-27 15:13:38 +08:00
parent 978c73fd95
commit 1b9cc31d73
3 changed files with 14 additions and 10 deletions

View File

@@ -65,13 +65,13 @@ export class GuildHandler {
return resResult(STATUS.GUILD_STRUCTURE_NOT_FOUND);
}
let bossBase = getBossByLv(curStructure.lv);
let {bossHp, warId } = getRandomByLen(bossBase.wars);
let {bossHp, warId, bossLevel } = getRandomByLen(bossBase.wars);
let resGuild = await GuildModel.costFund(code, bossBase.consume)
if (!resGuild)
return resResult(STATUS.GUILD_FUND_NOT_ENOUGH);
await BossInstanceModel.openBossInstance(code, bossHp, warId);
await BossInstanceModel.openBossInstance(code, bossHp, warId, bossLevel);
res.releaseCallback();
let result = {warId, ranks: [], myRank: {}, bossHp, status: 3, isBattled: false};
let result = {warId, ranks: [], myRank: {}, bossHp, status: 3, bossLv: bossLevel, isBattled: false};
return resResult(STATUS.SUCCESS, result);
}

View File

@@ -15,7 +15,7 @@ import { getArmyBossRank } from '../pubUtils/data';
* @param roleId
*/
export async function getBossInstanceInfo(bossInstance: BossInstanceType, roleId:string) {
let { warId, ranks, bossHp, winWarId, winTime, roleIdRecords, guildCode } = bossInstance;
let { warId, ranks, bossHp, bossLv, winWarId, winTime, roleIdRecords, guildCode } = bossInstance;
ranks.sort(function(a, b) {
return b.score - a.score + a.time - b.time;
});
@@ -45,7 +45,7 @@ export async function getBossInstanceInfo(bossInstance: BossInstanceType, roleId
}
return {roleId, score, rankLv: index + 1};
});
return {warId, ranks: lastRanks, myRank, bossHp, status: 3, isBattled};
return {warId, ranks: lastRanks, myRank, bossHp, status: 3, isBattled, bossLv};
}
/**
* 战斗结束返回
@@ -54,16 +54,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 } = bossInstance;
let { warId, ranks, bossHp, winWarId, guildCode, recordRanks, winNum, bossLv } = bossInstance;
let pushRanks;
let result:any = {};
if (battleNum == winNum) {
pushRanks = deepCopy(recordRanks);
result = {warId: winWarId, bossHp: 0, status: 3};
result = {warId: winWarId, bossHp: 0, bossLv, status: 3};
await BossInstanceModel.recordRoleIdWhenCheck(guildCode, roleId);
} else {
pushRanks = deepCopy(ranks);
result = {warId, bossHp, status: 3};
result = {warId, bossHp, bossLv, status: 3};
}
pushRanks.sort(function(a, b) {
return b.score - a.score + a.time - b.time;

View File

@@ -22,6 +22,9 @@ export default class BossInstance extends BaseModel {
@prop({ required: true })
bossHp: number;
@prop({ required: true })
bossLv: number;
@prop({ required: true, type: Rank, default:[]})
ranks:Array<Rank>;
@@ -48,13 +51,14 @@ export default class BossInstance extends BaseModel {
@prop({ required: true, default: false })
winSettled: boolean; //胜利是否结算过
public static async findBossInstance(guildCode: string, lean = true) {
const bossInstance: BossInstanceType = await BossInstanceModel.findOne({ guildCode }).lean(lean);
return bossInstance;
}
public static async openBossInstance(guildCode: string, bossHp: number, warId: number, lean = true) {
const bossInstance: BossInstanceType = await BossInstanceModel.findOneAndUpdate({ guildCode },{ranks:[], time: nowSeconds(), bossHp, warId, $inc: { recordNum: 1 }}, {new: true, upsert: true}).lean(lean);
public static async openBossInstance(guildCode: string, bossHp: number, warId: number, bossLv: number, lean = true) {
const bossInstance: BossInstanceType = await BossInstanceModel.findOneAndUpdate({ guildCode },{ranks:[], time: nowSeconds(), bossHp, bossLv, warId, $inc: { recordNum: 1 }}, {new: true, upsert: true}).lean(lean);
return bossInstance;
}
//记录玩家boss通关后首次查看boss关卡