pvp加军功,结算

This commit is contained in:
mamengke01
2021-01-15 11:48:41 +08:00
parent fb10eb8623
commit 0356d8d16d

View File

@@ -1,7 +1,7 @@
import {Application, BackendSession, pinus} from 'pinus'; import {Application, BackendSession, pinus} from 'pinus';
import { uniq, findWhere, findIndex } from 'underscore'; import { uniq, findWhere, findIndex } from 'underscore';
import { gameData, getPvpBoxs, getPLvByScore } from '../../../pubUtils/data'; import { gameData, getPvpBoxs, getPLvByScore } from '../../../pubUtils/data';
import { refreshEnemies, getEnemies, getLvByScore, defaultHeroes, comsumeChallengeCnt, refresh, findPvpDefByRoleId, checkRoleIsRobot, getRefOppCnt, findPvpDefAllByRoleId, generPVPOppRecInfo, generMyRecInfo, robotIdComBack } from '../../../services/pvpService'; import { refreshEnemies, getEnemies, getLvByScore, defaultHeroes, comsumeChallengeCnt, refresh, findPvpDefByRoleId, checkRoleIsRobot, getRefOppCnt, findPvpDefAllByRoleId, generPVPOppRecInfo, generMyRecInfo } from '../../../services/pvpService';
import { RoleModel, RoleType } from '../../../db/Role'; import { RoleModel, RoleType } from '../../../db/Role';
import { STATUS } from '../../../consts/statusCode'; import { STATUS } from '../../../consts/statusCode';
import { resResult, genCode } from '../../../pubUtils/util'; import { resResult, genCode } from '../../../pubUtils/util';
@@ -35,20 +35,18 @@ export class PvpHandler {
let roleId = session.get('roleId'); let roleId = session.get('roleId');
let {heroScores, hisScore} = await PvpDefenseModel.findByRoleId(roleId); let {heroScores, hisScore} = await PvpDefenseModel.findByRoleId(roleId);
let score = 0; let score = 0;
for (let {hid, score: heroScore} of heroScores) { for (let {hid, score: heroScore} of addHeroScores) {
if (heroScore < 0) continue; if (heroScore < 0) continue;
let index = findIndex(addHeroScores, {hid}); let index = findIndex(heroScores, {hid});
if (index != -1) { if (index != -1) {
heroScores[index].score = heroScore; heroScores[index].score = heroScore;
} else { } else {
heroScores.push({hid, score :heroScore}); heroScores.push({hid, score :heroScore});
} }
} }
for (let heroScore of heroScores) { for (let heroScore of heroScores) {
score += heroScore.score; score += heroScore.score;
} }
if (score < 0) { if (score < 0) {
score = 0; score = 0;
} }
@@ -259,7 +257,7 @@ export class PvpHandler {
const defenseInfo = await generPVPOppRecInfo(isSuccess, curOpp, oppHeroes, role.lv); const defenseInfo = await generPVPOppRecInfo(isSuccess, curOpp, oppHeroes, role.lv);
// 战报记录 // 战报记录
await PvpRecordModel.createRec({roleId1: roleId, roleId2: robotIdComBack(oppRoleId), warId: BattleRecord.battleId, attackInfo, defenseInfo, createTime: nowSeconds()}); await PvpRecordModel.createRec({roleId1: roleId, roleId2: oppRoleId, warId: BattleRecord.battleId, attackInfo, defenseInfo, createTime: nowSeconds()});
// 刷新对手 // 刷新对手
let newOppPlayers: Array<OppPlayers> = await refreshEnemies(role, score, pLv); let newOppPlayers: Array<OppPlayers> = await refreshEnemies(role, score, pLv);
@@ -392,7 +390,7 @@ export class PvpHandler {
newHero.setPvpHeroInfo(hero); newHero.setPvpHeroInfo(hero);
return newHero; return newHero;
}) })
result = new PlayerDetail({...pvpHistoryOpp, roleId: pvpHistoryOpp.oppRoleId, heroes, rank: pvpHistoryOpp.rankLv}); result = new PlayerDetail({...pvpHistoryOpp, roleId: pvpHistoryOpp.oppRoleId, heroes});
} else { // 查询对方pvpDefense } else { // 查询对方pvpDefense
let pvpDefense = await PvpDefenseModel.findByRoleId(oppoRoleId); let pvpDefense = await PvpDefenseModel.findByRoleId(oppoRoleId);
let dbHeroes = await HeroModel.findByRole(oppoRoleId); let dbHeroes = await HeroModel.findByRole(oppoRoleId);
@@ -408,7 +406,7 @@ export class PvpHandler {
} }
heroes.sort((a, b) => b.score - a.score); heroes.sort((a, b) => b.score - a.score);
let rank = await getMyRank(REDIS_KEY.PVP_RANK, 0, roleId);//去redis中获取排名 let rank = await getMyRank(REDIS_KEY.PVP_RANK, 0, roleId);//去redis中获取排名
result = new PlayerDetail({...role, ...pvpDefense, heroes, rank}); result = new PlayerDetail({...role, heroes, rank});
} }
return resResult(STATUS.SUCCESS, result); return resResult(STATUS.SUCCESS, result);