寻宝:增加 boss 返回字段;修改领取奖励更新
This commit is contained in:
@@ -63,6 +63,21 @@ export class RoleStatus {
|
||||
}
|
||||
}
|
||||
|
||||
export class BossHp {
|
||||
// boss 战场标识
|
||||
@prop({ required: true, default: 0 })
|
||||
dataId: number;
|
||||
// boss 战场标识
|
||||
@prop({ required: true, default: 0 })
|
||||
actorId: number;
|
||||
// 总血量
|
||||
@prop({ required: true, default: 0 })
|
||||
hp: number;
|
||||
// 当前血量
|
||||
@prop({ required: true, default: 0 })
|
||||
curHp: number;
|
||||
}
|
||||
|
||||
@index({ teamCode: 1 })
|
||||
@index({ roleIds: 1 })
|
||||
@index({ status: 1, blueprtId: 1, pub: 1})
|
||||
@@ -107,8 +122,8 @@ export default class ComBattleTeam extends BaseModel {
|
||||
roleCnt: number;
|
||||
|
||||
// 单个 boss 血量状态
|
||||
@prop({ required: false, default: [] })
|
||||
bossHpArr: Array<{dataId: number, hp: number, curHp: number}>;
|
||||
@prop({ required: false, type: BossHp, default: [] })
|
||||
bossHpArr: Array<BossHp>;
|
||||
|
||||
public static async createTeam(teamData: {teamCode: string, roleIds: Array<string>, pub: boolean, blueprtId: number, quality: number, status: number, roleStatus: Array<RoleStatus>, capId: string, ceLimit: number}, lean = true) {
|
||||
const team = await ComBattleTeamModel.findOneAndUpdate({ teamCode: teamData.teamCode }, {$set :{...teamData, roleCnt: teamData.roleIds.length}}, {upsert: true, new: true}).lean(lean);
|
||||
@@ -140,12 +155,13 @@ export default class ComBattleTeam extends BaseModel {
|
||||
return team;
|
||||
}
|
||||
|
||||
public static async updateRewardSt(roleId: string, gotReward: boolean, lean = true) {
|
||||
const team = await ComBattleTeamModel.findOneAndUpdate({ roleIds: roleId, 'roleStatus.roleId': roleId}, {$set: {'roleStatus.$.gotReward': gotReward}}).lean(lean);
|
||||
public static async updateRewardSt(teamCode: string, roleId: string, gotReward: boolean, lean = true) {
|
||||
const team = await ComBattleTeamModel.findOneAndUpdate({ teamCode, 'roleStatus.roleId': roleId}, {$set: {'roleStatus.$.gotReward': gotReward}}).lean(lean);
|
||||
return team;
|
||||
}
|
||||
|
||||
public static async syncTeamData(teamData: {teamCode: string, status: number, roleStatus: Array<RoleStatus>, bossHpArr: Array<{dataId: number, hp: number, curHp: number}>}, lean = true) {
|
||||
public static async syncTeamData(teamData: {teamCode: string, status: number, roleStatus: Array<RoleStatus>, bossHpArr: Array<BossHp>}, lean = true) {
|
||||
console.log('syncTeamData bossHpArr: ', teamData.bossHpArr);
|
||||
const team = await ComBattleTeamModel.findOneAndUpdate({ teamCode: teamData.teamCode }, {$set :{...teamData, roleCnt: teamData.roleStatus.length}}, {new: true}).lean(lean);
|
||||
return team;
|
||||
}
|
||||
|
||||
@@ -19,7 +19,7 @@ const olySeidInfo = new Map<number, any>();
|
||||
const expeditionInfo = new Map<number, any> ();
|
||||
const comBtlInfo = new Map<number, {quality: number, name: string, assistanceTime: number, assistanceLevel: number}>();
|
||||
const btlBossHpSum = new Map<number, number>();
|
||||
const btlBossHp = new Map<number, Array<{dataId: number, hp: number}>>();
|
||||
const btlBossHp = new Map<number, Array<{dataId: number, hp: number, actorId: number}>>();
|
||||
const blueprtToWar = new Map<number, number>();
|
||||
const goodInfo = new Map<number, any>();
|
||||
const blueprt = new Map<number, Array<number>>();
|
||||
@@ -364,12 +364,12 @@ export function getBossHpByWarId(warId: number) {
|
||||
const warInfo = getWarJsons(warId).json;
|
||||
if (warInfo && warInfo.length) {
|
||||
warInfo.forEach(hero => {
|
||||
let { attribute, dataId, relation } = hero;
|
||||
let { attribute, dataId, relation, actorId } = hero;
|
||||
if (relation === 2) {
|
||||
let attriData = decodeIdCntArrayStr(attribute, 1);
|
||||
const hp = parseInt(attriData.get('1'));
|
||||
if (hp > 0) {
|
||||
bossHpArr.push({dataId, hp});
|
||||
bossHpArr.push({dataId, hp, actorId});
|
||||
bossHpSum += hp;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user