寻宝:修改匹配后的channel处理;掉落中增加字段;修改伤害计算

This commit is contained in:
liangtongchuan
2020-12-02 17:37:20 +08:00
parent 3515f99260
commit aa5daa8a6e
3 changed files with 55 additions and 26 deletions

View File

@@ -43,6 +43,9 @@ export class RoleStatus {
// 是否领奖
@prop({ required: true, default: false })
gotReward: boolean;
// 固定奖励
@prop({ required: true, default: '&' })
fixReward: string;
constructor(roleId: string, roleName: string, isCap: boolean, isFrd: boolean, headHid: number, sHid: number, topFiveCe: number, lv: number, heroes = [], isRobot = false) {
this.roleId = roleId;
@@ -103,6 +106,10 @@ export default class ComBattleTeam extends BaseModel {
@prop({ required: true, default: 1 })
roleCnt: number;
// 单个 boss 血量状态
@prop({ required: false, default: [] })
bossHpArr: Array<{dataId: number, hp: number, curHp: number}>;
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);
return team;
@@ -138,7 +145,7 @@ export default class ComBattleTeam extends BaseModel {
return team;
}
public static async syncTeamData(teamData: {teamCode: string, status: number, roleStatus: Array<RoleStatus>}, lean = true) {
public static async syncTeamData(teamData: {teamCode: string, status: number, roleStatus: Array<RoleStatus>, bossHpArr: Array<{dataId: number, hp: number, curHp: number}>}, lean = true) {
const team = await ComBattleTeamModel.findOneAndUpdate({ teamCode: teamData.teamCode }, {$set :{...teamData, roleCnt: teamData.roleStatus.length}}, {new: true}).lean(lean);
return team;
}
@@ -190,6 +197,11 @@ export default class ComBattleTeam extends BaseModel {
return team;
}
public static async getOtherTeamByQualityAndSt(roleId: string, qualityArr: Array<number>, status: number, ce = 0, pub = true, cntLmt = 2, lean = true) {
const team = await ComBattleTeamModel.findOne({quality: {$in: qualityArr}, status, ceLimit: {$lte: ce}, pub, roleCnt: {$lte: cntLmt}, roleIds: {$nin: [roleId]}}).lean(lean);
return team;
}
public static async getTeamByRoleAndTime(roleId: string, qualityArr?: Array<number>, time?: Date, isAssist?: boolean, limitCnt = 50, lean = true) {
let query = {roleIds: roleId};
if (qualityArr) {