diff --git a/game-server/app/servers/battle/handler/comBattleHandler.ts b/game-server/app/servers/battle/handler/comBattleHandler.ts index 0f4b0d562..d1fc82b92 100644 --- a/game-server/app/servers/battle/handler/comBattleHandler.ts +++ b/game-server/app/servers/battle/handler/comBattleHandler.ts @@ -256,9 +256,7 @@ export class ComBattleHandler { } // 机器人队伍 3 秒直接开战 setTimeout(async () => { - await ComBattleTeamModel.updateStatusByCode(teamCode, COM_TEAM_STATUS.FIGHTING); - comTeam.status = COM_TEAM_STATUS.FIGHTING; - channelService.pushMessageByUids('onComBtlStart', resResult(STATUS.SUCCESS, {teamCode, roleStatus: comTeam.roleStatus}), [{uid: roleId, sid}]); + thiz.startBattle({teamCode}, session); }, 3000); }, COM_BTL_CONST.ASSIST_TIME); return resResult(STATUS.SUCCESS); @@ -565,15 +563,18 @@ export class ComBattleHandler { } } // 重置总血量,计算真实伤害 + let actBossHurts = []; let totalHurtHp = 0; teamStatus.bossHpArr.forEach(boss => { for (let bh of bossHurts) { if (boss.dataId === bh.dataId && bh.hurtHp < 0) { let deltaHp = Math.abs(bh.hurtHp); if (boss.curHp >= deltaHp) { + actBossHurts.push({dataId: boss.dataId, hurtHp: deltaHp}); totalHurtHp += deltaHp; boss.curHp -= deltaHp; } else if (boss.curHp > 0) { + actBossHurts.push({dataId: boss.dataId, hurtHp: boss.curHp}); totalHurtHp += boss.curHp; boss.curHp = 0; } @@ -619,7 +620,7 @@ export class ComBattleHandler { let channelService = this.app.get('channelService'); let channel = channelService.getChannel(teamCode, false); const roleStatus = teamStatus.roleStatus.map(st => {return {roleId: st.roleId, totalDmg: st.totalDmg, killed: st.killed}}); - channel.pushMessage('onTeammateAct', resResult(STATUS.SUCCESS, {teamCode, bossCurHp: teamStatus.bossCurHp, bossHpArr: teamStatus.bossHpArr, roleStatus})); + channel.pushMessage('onTeammateAct', resResult(STATUS.SUCCESS, { teamCode, bossCurHp: teamStatus.bossCurHp, bossHpArr: teamStatus.bossHpArr, roleStatus, actRoleId: roleId, actBossHurts })); // 判断战斗是否结束 let battleSt = checkComBattleResult(teamStatus); teamStatus.status = battleSt; diff --git a/game-server/test/app.test.ts b/game-server/test/app.test.ts index a1ff090ec..87e66577a 100644 --- a/game-server/test/app.test.ts +++ b/game-server/test/app.test.ts @@ -39,7 +39,6 @@ describe('test zyz login', function() { port: port }, (data) => { // 连接成功执行函数 - console.log('gate连接成功', data); done(); }); }); @@ -53,7 +52,6 @@ describe('test zyz login', function() { expect(1).equal(1); pinusClient.request('connector.entryHandler.enter', {token:'mgn0njiajb6kapid3eekvt7tssxelig9zi2oq2bzkxr4zzi9w9', serverId: 1} , (ret) => { // 消息回调 - console.log('connector返回', JSON.stringify(ret)); expect(ret).to.be.an('object'); expect(ret.code).equal(0); done(); diff --git a/game-server/test/comBattle.test.ts b/game-server/test/comBattle.test.ts index ee233306b..909e677ad 100644 --- a/game-server/test/comBattle.test.ts +++ b/game-server/test/comBattle.test.ts @@ -13,8 +13,10 @@ describe('寻宝创建队伍', function() { var pinusClient; var roleInfo; - const loginParm = {token:'mgn0njiajb6kapid3eekvt7tssxelig9zi2oq2bzkxr4zzi9w9', serverId: 1}; - const createTeamParm = {blueprtId: 33001, pub: true, ceLimit: 0}; + const loginParms = {token:'mgn0njiajb6kapid3eekvt7tssxelig9zi2oq2bzkxr4zzi9w9', serverId: 1}; + const createTeamParms = {blueprtId: 33001, pub: true, ceLimit: 0}; + const searchTeamParms = {qualityArr: [1, 2, 3, 4, 5]}; + beforeEach(function(done) { pinusClient = new PinusWSClient(); pinusClient.on(PinusWSClientEvent.EVENT_IO_ERROR, (event) => { @@ -42,11 +44,11 @@ describe('寻宝创建队伍', function() { port: port }, (data) => { // 连接成功执行函数 - console.log('gate连接成功', data); + // console.log('gate连接成功', data); // done(); - pinusClient.request('connector.entryHandler.enter', loginParm, (ret) => { + pinusClient.request('connector.entryHandler.enter', loginParms, (ret) => { // 消息回调 - console.log('connector返回', JSON.stringify(ret)); + // console.log('connector返回', JSON.stringify(ret)); roleInfo = ret.role; done(); }); @@ -58,8 +60,8 @@ describe('寻宝创建队伍', function() { done(); }); - it('直接返回队伍', function(done) { - pinusClient.request('battle.comBattleHandler.createTeam', createTeamParm, (res) => { + it('创建队伍并解散', function(done) { + pinusClient.request('battle.comBattleHandler.createTeam', createTeamParms, (res) => { expect(res).to.be.an('object'); expect(res.code).equal(0); expect(res.data).to.be.an('object'); @@ -68,10 +70,24 @@ describe('寻宝创建队伍', function() { res.data.roleStatus.forEach(roleSt => { expect(roleSt).to.have.all.keys('roleId', 'roleName', 'isCap', 'isFrd', 'headHid', 'sHid', 'topFiveCe', 'lv', 'isRobot', 'heroes', 'killed', 'totalDmg'); }); - done(); + pinusClient.request('battle.comBattleHandler.dismiss', {teamCode: res.data.teamCode}, (dismissRes) => { + expect(dismissRes).to.be.an('object'); + expect(dismissRes.code).equal(0); + done(); + }); }); }); + // it('加入队伍,机器人的话直接开战', function(done) { + // this.timeout(65 * 1000); + // pinusClient.request('battle.comBattleHandler.searchTeam', searchTeamParms, (res) => { + // expect(res).to.be.an('object'); + // expect(res.code).equal(0); + // expect(res.data).to.be.an('object'); + // expect(res.data.teamCode).to.be.a('string'); + // }); + // }); + it('获取寻宝记录', function(done) { pinusClient.request('battle.comBattleHandler.getTeamRec', {}, (res) => { expect(res).to.be.an('object');