From 87049d9f462d7d80e9ac8da701608256b8dec07e Mon Sep 17 00:00:00 2001 From: liangtongchuan Date: Sat, 20 Feb 2021 14:28:55 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AF=BB=E5=AE=9D=EF=BC=9A=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E6=95=B0=E7=BB=84=E5=A3=B0=E6=98=8E=E9=A3=8E=E6=A0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../battle/handler/comBattleHandler.ts | 18 ++++++------- game-server/app/services/comBattleService.ts | 24 ++++++++--------- shared/db/ComBattleTeam.ts | 26 +++++++++---------- 3 files changed, 34 insertions(+), 34 deletions(-) diff --git a/game-server/app/servers/battle/handler/comBattleHandler.ts b/game-server/app/servers/battle/handler/comBattleHandler.ts index 72819bff1..191df8f6c 100644 --- a/game-server/app/servers/battle/handler/comBattleHandler.ts +++ b/game-server/app/servers/battle/handler/comBattleHandler.ts @@ -239,7 +239,7 @@ export class ComBattleHandler { * @param msg * @param session */ - async getTeams(msg: { blueprtIds: Array }, session: BackendSession) { + async getTeams(msg: { blueprtIds: number[] }, session: BackendSession) { let roleId = session.get('roleId'); let { lv } = await Role.findByRoleId(roleId); if (lv < COM_BTL_CONST.ENABLE_LV) return resResult(STATUS.COM_BATTLE_LV_NOT_ENOUGH); @@ -251,12 +251,12 @@ export class ComBattleHandler { /** * ! deprecate * @description 队伍准备 - * @param {{teamCode: string, heroes: Array}} msg + * @param {{teamCode: string, heroes: number[]}} msg * @param {BackendSession} session * @returns * @memberof ComBattleHandler */ - async teammateReady(msg: {teamCode: string, heroes: Array}, session: BackendSession) { + async teammateReady(msg: {teamCode: string, heroes: number[]}, session: BackendSession) { let roleId = session.get('roleId'); let { teamCode, heroes } = msg; let teamStatus = this.teamMap.get(teamCode); @@ -279,12 +279,12 @@ export class ComBattleHandler { /** * @description 出兵时记录玩家阵容 - * @param {{teamCode: string, heroes: Array}} msg 队伍编号;阵容 + * @param {{teamCode: string, heroes: number[]}} msg 队伍编号;阵容 * @param {BackendSession} session * @returns * @memberof ComBattleHandler */ - async setupHeroes(msg: {teamCode: string, heroes: Array, battleCode: string}, session: BackendSession) { + async setupHeroes(msg: {teamCode: string, heroes: number[], battleCode: string}, session: BackendSession) { let roleId = session.get('roleId'); let { teamCode, heroes, battleCode = 'default' } = msg; if (!heroes || heroes.length === 0) return resResult(STATUS.COM_BATTLE_HEROES_ERR); @@ -433,12 +433,12 @@ export class ComBattleHandler { /** * @description 战场中的状态同步,战斗结果判定 - * @param {{teamCode: string, bossHurts: Array<{dataId: number, hurtHp: number}>, killed: Array, curRnd: number}} msg 队伍编号;boss 承伤;武将阵亡;当前回合 + * @param {{teamCode: string, bossHurts: Array<{dataId: number, hurtHp: number}>, killed: number[], curRnd: number}} msg 队伍编号;boss 承伤;武将阵亡;当前回合 * @param {BackendSession} session * @returns * @memberof ComBattleHandler */ - async action(msg: {teamCode: string, bossHurts: Array<{dataId: number, hurtHp: number}>, killed: Array, curRnd: number}, session: BackendSession) { + async action(msg: {teamCode: string, bossHurts: Array<{dataId: number, hurtHp: number}>, killed: number[], curRnd: number}, session: BackendSession) { let roleId = session.get('roleId'); let { teamCode, killed, bossHurts, curRnd } = msg; let teamStatus = this.teamMap.get(teamCode); @@ -599,12 +599,12 @@ export class ComBattleHandler { /** * @description 获取藏宝图数量 - * @param {{ids: Array}} msg 藏宝图Id数组,可选参数 + * @param {{ids: number[]}} msg 藏宝图Id数组,可选参数 * @param {BackendSession} session * @returns * @memberof ComBattleHandler */ - async getBlueprtCount(msg: {ids: Array}, session: BackendSession) { + async getBlueprtCount(msg: {ids: number[]}, session: BackendSession) { let roleId = session.get('roleId'); let { ids } = msg; let blueprts; diff --git a/game-server/app/services/comBattleService.ts b/game-server/app/services/comBattleService.ts index 2047a5314..1708bd5e0 100644 --- a/game-server/app/services/comBattleService.ts +++ b/game-server/app/services/comBattleService.ts @@ -28,7 +28,7 @@ import { ChannelUser } from '../domain/ChannelUser'; * @param qualityArr 品质数组,在所有给定品质的藏宝图中筛选1 * @param cnt 返回藏宝图数量 */ -export function getRandBlueprtId(qualityArr: Array, cnt = 1) { +export function getRandBlueprtId(qualityArr: number[], cnt = 1) { if (!qualityArr || !qualityArr.length) return null; let blueprtIdArr = []; for (let q of qualityArr) { @@ -168,7 +168,7 @@ export async function getRealReward(blueprtId: number, roleSt: RoleStatus) { return fixRewardStr; } -export async function getAssistTimesByQuality(roleId: string, qualityArr?: Array) { +export async function getAssistTimesByQuality(roleId: string, qualityArr?: number[]) { let teams = await ComBattleTeamModel.getAssistTeamsByTime(roleId, qualityArr, new Date(new Date().setHours(0, 0, 0, 0)), true); let cntMap = new Map(); teams.forEach(team => { @@ -441,7 +441,7 @@ export function randEquipPrintId(warInfo) { * @param {RoleStatus[]} roleStatus 队伍内的所有队友 */ export async function getComBattleFriendAdd(roleStatus: RoleStatus[]) { - let hasAdd = new Array(); //roleIds + let hasAdd: string[] = []; //roleIds for(let myRoleStatus of roleStatus) { for(let rs of roleStatus) { if(myRoleStatus.roleId == rs.roleId) continue; @@ -463,11 +463,11 @@ export async function getComBattleFriendAdd(roleStatus: RoleStatus[]) { * @description 检查玩家是否符合加入队伍的条件 * @param {Partial} roleInfo 要加入玩家的信息 * @param {string} roleId 要加入玩家的 id - * @param {Array} roleIds 队伍中当前玩家列表 + * @param {string[]} roleIds 队伍中当前玩家列表 * @param {number} ceLimit * @returns */ -async function teammateValid(roleInfo: Partial, roleId: string, roleIds: Array, ceLimit: number) { +async function teammateValid(roleInfo: Partial, roleId: string, roleIds: string[], ceLimit: number) { if (!roleInfo || roleIds.indexOf(roleId) !== -1) return false; const isBlack = await teammateInBlackList(roleId, roleIds); @@ -483,12 +483,12 @@ async function teammateValid(roleInfo: Partial, roleId: string, roleId * @description 将用户信息转换成寻宝组队所需的 RoleStatus * @export * @param {string} roleId 要加入玩家的信息 - * @param {Array} roleIds 队伍中当前玩家列表 + * @param {string[]} roleIds 队伍中当前玩家列表 * @param {number} ceLimit * @param {number} quality * @returns */ -export async function getValidTeammateRoleSt(roleId: string, roleIds: Array, ceLimit: number, quality: number) { +export async function getValidTeammateRoleSt(roleId: string, roleIds: string[], ceLimit: number, quality: number) { let roleInfo = await RoleModel.findByRoleId(roleId); let { roleName, headHid = 19, sHid = 19, topFiveCe, lv } = roleInfo; const valid = await teammateValid(roleInfo, roleId, roleIds, ceLimit); @@ -503,10 +503,10 @@ export async function getValidTeammateRoleSt(roleId: string, roleIds: Array} roleIds 队伍中已有的玩家 id + * @param {string[]} roleIds 队伍中已有的玩家 id * @returns */ -export async function teammateInBlackList(roleId: string, roleIds: Array) { +export async function teammateInBlackList(roleId: string, roleIds: string[]) { for(let teammateRoleId of roleIds) { const isBlack = await FriendRelationModel.isInBlackList(roleId, teammateRoleId); if (isBlack === true) return true; @@ -530,7 +530,7 @@ export function blueprtIdValid(id: number) { * @param {number} ceLimit * @param {number} bossHp * @param {number} quality - * @param {Array} bossHpArr + * @param {BossHp[]} bossHpArr * @returns */ export function createComTeamData(teamCode: string, pub: boolean, blueprtId: number, capId: string, ceLimit: number) { @@ -689,11 +689,11 @@ export async function addRobotsLater(comTeam: MemComBtlTeam, roleInfo: RoleType, /** * @description 从数组里找出第一个不在黑名单的队伍 * @export - * @param {Array} teams 队伍数组 + * @param {ComBattleTeamType[]} teams 队伍数组 * @param {string} roleId 要加入的玩家 id * @returns */ -export async function oneTeamNotInBlack(teams: Array, roleId: string) { +export async function oneTeamNotInBlack(teams: ComBattleTeamType[], roleId: string) { for(let team of teams) { let { roleIds } = team; const inBlackList = await teammateInBlackList(roleId, roleIds); diff --git a/shared/db/ComBattleTeam.ts b/shared/db/ComBattleTeam.ts index c1a2611b3..756a44919 100644 --- a/shared/db/ComBattleTeam.ts +++ b/shared/db/ComBattleTeam.ts @@ -18,10 +18,10 @@ export class RoleStatus { battleCode: string; // 玩家所用阵容 @prop({ required: false, type: Number, default: [] }) - heroes: Array; + heroes: number[]; // 阵亡武将 @prop({ required: false, type: Number, default: [] }) - killed: Array; + killed: number[]; // 是否情谊助阵 @prop({ required: false, default: false }) isFrd: boolean; @@ -99,7 +99,7 @@ export default class ComBattleTeam extends BaseModel { teamCode: string; @prop({ required: true, type: String, default: [], _id: false }) - roleIds: Array + roleIds: string[]; // 队伍是否开放加入 @prop({ required: true, default: true }) @@ -118,7 +118,7 @@ export default class ComBattleTeam extends BaseModel { status: number; @prop({ required: true, type: RoleStatus, default: [] }) - roleStatus: Array; + roleStatus: RoleStatus[]; // 队长 roleId @prop({ required: true }) @@ -138,7 +138,7 @@ export default class ComBattleTeam extends BaseModel { // 单个 boss 血量状态 @prop({ required: false, type: BossHp, default: [] }) - bossHpArr: Array; + bossHpArr: BossHp[]; // 队伍是否开放加入 @prop({ required: true, default: false }) @@ -169,12 +169,12 @@ export default class ComBattleTeam extends BaseModel { return team; } - public static async updateHeroes(teamCode: string, roleId: string, heroes: Array, lean = true) { + public static async updateHeroes(teamCode: string, roleId: string, heroes: number[], lean = true) { const team: ComBattleTeamType = await ComBattleTeamModel.findOneAndUpdate({ teamCode, 'roleStatus.roleId': roleId}, {$set: {'roleStatus.$.heroes': heroes}}, {new: true}).lean(lean); return team; } - public static async setupBattleInfo(teamCode: string, roleId: string, heroes: Array, battleCode: string, lean = true) { + public static async setupBattleInfo(teamCode: string, roleId: string, heroes: number[], battleCode: string, lean = true) { const team: ComBattleTeamType = await ComBattleTeamModel.findOneAndUpdate({ teamCode, 'roleStatus.roleId': roleId}, {$set: {'roleStatus.$.heroes': heroes, 'roleStatus.$.battleCode': battleCode}}, {new: true}).lean(lean); return team; } @@ -184,7 +184,7 @@ export default class ComBattleTeam extends BaseModel { return team; } - public static async syncTeamData(teamData: {teamCode: string, status: number, roleStatus: Array, bossHpArr: Array}, timeout = false, lean = true) { + public static async syncTeamData(teamData: {teamCode: string, status: number, roleStatus: RoleStatus[], bossHpArr: BossHp[]}, timeout = false, lean = true) { console.log('syncTeamData bossHpArr: ', teamData.bossHpArr); const team: ComBattleTeamType = await ComBattleTeamModel.findOneAndUpdate({ teamCode: teamData.teamCode }, {$set :{...teamData, roleCnt: teamData.roleStatus.length, timeout}}, {new: true}).lean(lean); return team; @@ -232,23 +232,23 @@ export default class ComBattleTeam extends BaseModel { return teams; } - public static async getTeamByBlueprt(blueprtIds: Array, status: number, pub = true, limit = 50, lean = true) { + public static async getTeamByBlueprt(blueprtIds: number[], status: number, pub = true, limit = 50, lean = true) { const teams: ComBattleTeamType[] = await ComBattleTeamModel.find({blueprtId: {$in: blueprtIds}, status, pub}).limit(limit).lean(lean); return teams; } - public static async getOneTeamByQualityAndSt(qualityArr: Array, status: number, ce = 0, pub = true, cntLmt = 2, lean = true) { + public static async getOneTeamByQualityAndSt(qualityArr: number[], status: number, ce = 0, pub = true, cntLmt = 2, lean = true) { const team: ComBattleTeamType = await ComBattleTeamModel.findOne({quality: {$in: qualityArr}, status, ceLimit: {$lte: ce}, pub, roleCnt: {$lte: cntLmt}}).lean(lean); return team; } - public static async getOtherTeamByQualityAndSt(roleId: string, qualityArr: Array, status: number, lvRange: number, ce = 0, pub = true, cntLmt = 2, lean = true) { + public static async getOtherTeamByQualityAndSt(roleId: string, qualityArr: number[], status: number, lvRange: number, ce = 0, pub = true, cntLmt = 2, lean = true) { const curTime = new Date(Date.now() - 10 * 60 * 1000); // 10分钟之前 const team: ComBattleTeamType[] = await ComBattleTeamModel.find({quality: {$in: qualityArr}, status, lvRange, ceLimit: {$lte: ce}, pub, roleCnt: {$lte: cntLmt}, roleIds: {$nin: [roleId]}, updatedAt: {$gte: curTime}}).lean(lean); return team; } - public static async getTeamByRoleAndTime(roleId: string, qualityArr?: Array, time?: Date, isAssist?: boolean, limitCnt = 50, lean = true) { + public static async getTeamByRoleAndTime(roleId: string, qualityArr?: number[], time?: Date, isAssist?: boolean, limitCnt = 50, lean = true) { let query = {roleIds: roleId}; if (qualityArr) { query = Object.assign(query, {quality: {$in: qualityArr}}); @@ -263,7 +263,7 @@ export default class ComBattleTeam extends BaseModel { return teams; } - public static async getAssistTeamsByTime(roleId: string, qualityArr?: Array, time?: Date, isAssist?: boolean, lean = true) { + public static async getAssistTeamsByTime(roleId: string, qualityArr?: number[], time?: Date, isAssist?: boolean, lean = true) { let query = {roleIds: roleId, status: {$in: [0, 1, 2]}}; // 失败不计入助战 if (qualityArr) { query = Object.assign(query, {quality: {$in: qualityArr}});