pvp:修改等级和军功对应关系

This commit is contained in:
luying
2022-02-21 15:10:56 +08:00
parent a52715b852
commit bd76fa9e94
4 changed files with 27 additions and 17 deletions

View File

@@ -354,14 +354,14 @@ export class PvpHandler {
let seasonEndTime: number = this.app.get('pvpSeasonEndTime');
let refChallengeObj = refChallengeCnt(pvpDefense.challengeCnt, pvpDefense.challengeRefTime, seasonEndTime);
// 更新挑战阵容
let score = 0;
let scores: number[] = [];
for(let { actorId } of heroes) {
let heroScore = pvpDefense.heroScores.find(cur => cur.hid == actorId);
if(heroScore) {
score += heroScore.score;
scores.push(heroScore.score);
}
}
let attack = new Attack(heroes, score);
let attack = new Attack(heroes, scores);
let lineupCe = await generPvpLineupCe(roleId, pvpDefense.lineupCe, attack.heroes, []);
// 刷对手
let role = <RoleType>pvpDefense.role;
@@ -391,11 +391,11 @@ export class PvpHandler {
let seasonEndTime: number = this.app.get('pvpSeasonEndTime');
let refChallengeObj = refChallengeCnt(pvpDefense.challengeCnt, pvpDefense.challengeRefTime, seasonEndTime);
// 更新防守阵容
let score = 0, heroIdMap = new Map<number, string>(), hids: number[] = [];
let scores: number[] = [], heroIdMap = new Map<number, string>(), hids: number[] = [];
for(let { actorId } of heroes) {
let heroScore = pvpDefense.heroScores.find(cur => cur.hid == actorId);
if(heroScore) {
score += heroScore.score;
scores.push(heroScore.score);
}
// 记录hero的objectId用于存defense.heroes.hero
if(pvpDefense.defense && pvpDefense.defense.heroes) {
@@ -417,7 +417,7 @@ export class PvpHandler {
let defenseHeroes = heroes.map(cur => {
return new DefenseHero(cur, heroIdMap.get(cur.actorId));
});
let defense = new Defense(defenseHeroes, score, warId, buff);
let defense = new Defense(defenseHeroes, scores, warId, buff);
let lineupCe = await generPvpLineupCe(roleId, pvpDefense.lineupCe, defense.heroes, dbHeroes);
pvpDefense = await PvpDefenseModel.updateInfoAndInclude(roleId, { ...refChallengeObj, defense, lineupCe });

View File

@@ -6,7 +6,7 @@ import { PVP_HERO_POS, REDIS_KEY, PVP_CONST, COUNTER, TASK_TYPE, MAIL_TYPE, TA_E
import { dicPvpOpponent, DicPvpOpponent } from "../pubUtils/dictionary/DicPvpOpponent";
import { getRandSingleIndex, genCode, shouldRefresh, getChineseName, makeRobotId, robotIdComBack, getRandSingleEelm } from '../pubUtils/util';
import { pvpEndParamInter, RewardInter } from '../pubUtils/interface';
import { gameData, getPLvByScore, getPvpHeroRewardsByScore, getPvpRankRewardsByRank, getPvpDifficultByScore } from "../pubUtils/data";
import { gameData, getPLvByScore, getPvpHeroRewardsByScore, getPvpRankRewardsByRank, getPvpDifficultByScore, getPlvAndScore } from "../pubUtils/data";
import { PVP } from '../pubUtils/dicParam';
import { PVPConfigModel, PVPConfigType } from '../db/SystemConfig'
import { nowSeconds, getTimeFun } from '../pubUtils/timeUtil';
@@ -414,7 +414,6 @@ export async function generMyRecInfo(pvpDefense: PvpDefenseType, role: RoleType,
const dicOpp = gameData.pvpOpponent.get(pos);
const plusScore = getPlusScore(winStreakNum);
let pLv = getLvByScore(heroScores);
let myHeroRecords: HeroesRecord[] = []; // 存入rec里面的数据
let showHeroScores = new Array<{ hid: number, addScore: number, plusScore: number, score: number }>();
@@ -449,7 +448,7 @@ export async function generMyRecInfo(pvpDefense: PvpDefenseType, role: RoleType,
}
let attackInfo = new PvpRecordPlayerInfo();
attackInfo.setByRole(role, myHeroRecords, isSuccess, isSuccess ? addSumScore : 0, pLv)
attackInfo.setByRole(role, myHeroRecords, isSuccess, isSuccess ? addSumScore : 0, attack.pLv);
let newAttack = <Attack>calLineupScore(attack, heroScores);
let newDefense = <Defense>calLineupScore(defense, heroScores);
@@ -463,14 +462,14 @@ export async function generMyRecInfo(pvpDefense: PvpDefenseType, role: RoleType,
function calLineupScore(lineup: Attack|Defense, heroScores: HeroScore[]) {
if(!lineup) return lineup;
let score = 0;
let scores: number[] = [];
for(let { actorId } of lineup.heroes) {
let hs = heroScores.find(cur => cur.hid == actorId);
if(hs) {
score += hs.score;
scores.push(hs.score);
}
}
let pLv = getPLvByScore(score);
let { pLv, score } = getPlvAndScore(scores);
return {...lineup, score, pLv}
}