✨ feat(巅峰演武): 军功修改、匹配修改、新增挑战次数购买接口
This commit is contained in:
@@ -769,6 +769,17 @@ export function checkRouteParam(route: string, msg: any) {
|
||||
if (!checkNaturalNumbers(msg.id)) return false;
|
||||
break;
|
||||
}
|
||||
case "battle.pvpHandler.buyChallengeCnt":
|
||||
{
|
||||
if (!checkNaturalNumbers(msg.count)) return false;
|
||||
break;
|
||||
}
|
||||
case "battle.pvpHandler.sweep":
|
||||
{
|
||||
if (!checkNaturalNumbers(msg.warId)) return false;
|
||||
if (!checkNaturalStrings(msg.oppRoleId)) return false;
|
||||
break;
|
||||
}
|
||||
case "battle.ladderHandler.getOppLineup":
|
||||
{
|
||||
if (!checkNaturalStrings(msg.roleId)) return false;
|
||||
|
||||
@@ -2,14 +2,14 @@
|
||||
import { PvpDefenseModel, PvpDefenseType, pvpUpdateInter } from '../db/PvpDefense';
|
||||
import { Defense, Attack, LineupCe, OppPlayer, HeroScore, HeroReward, OppPlayerReturn, AttackHero, DefenseHero } from '../domain/battleField/pvp';
|
||||
import { RoleType } from '../db/Role';
|
||||
import { REDIS_KEY, TASK_TYPE, MAIL_TYPE, TA_EVENT, ITID, getHeadItid, getFrameItid, getSpineItid, PVP_SEASON_STATUS } from '../consts';
|
||||
import { REDIS_KEY, TASK_TYPE, MAIL_TYPE, TA_EVENT, ITID, getHeadItid, getFrameItid, getSpineItid, PVP_SEASON_STATUS, SHOP_REFRESH_TYPE } from '../consts';
|
||||
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, getPlvAndScore, getPvpBoxsBySeasonNum, getPvpRankMaxRewardsBySeasonNum, randomGoodsByItid } from "../pubUtils/data";
|
||||
import { EXTERIOR, PVP } from '../pubUtils/dicParam';
|
||||
import { PVPConfigModel } from '../db/PvpConfig'
|
||||
import { nowSeconds, getTimeFun } from '../pubUtils/timeUtil';
|
||||
import { nowSeconds, getTimeFun, getZeroPointD } from '../pubUtils/timeUtil';
|
||||
import { HeroesRecord, PvpRecordPlayerInfo } from '../db/PvpRecord';
|
||||
import { HeroModel, HeroType } from '../db/Hero';
|
||||
import { AttributeCal } from '../domain/roleField/attribute';
|
||||
@@ -539,36 +539,36 @@ export async function generPVPOppRecInfo(isSuccess: boolean, curOpp: OppPlayer,
|
||||
}
|
||||
let addSumScore = 0;
|
||||
let pvpDefense = curOpp.isRobot? null: await PvpDefenseModel.findByRoleId(robotIdComBack(curOpp.roleId));
|
||||
if(pvpDefense && !isSuccess) {
|
||||
if(pvpDefense && pvpDefense.defense) {
|
||||
let { attack, defense, heroScores, score, defenseScoreCnt, refDefenseScore } = pvpDefense;
|
||||
if(shouldRefresh(refDefenseScore, new Date())) {
|
||||
defenseScoreCnt = 0; refDefenseScore = new Date();
|
||||
}
|
||||
if(defenseScoreCnt < PVP.PVP_DEFENSE_SUCCESS_REWARD_MAX_CNT) {
|
||||
for(let { actorId } of defense.heroes) {
|
||||
let hs = heroScores.find(cur => cur.hid == actorId);
|
||||
const dicOpp = gameData.pvpOpponent.get(curOpp.pos);
|
||||
let addScore = PVP.PVP_DEFENSE_SUCCESS_REWARD - dicOpp.score;
|
||||
if(hs) {
|
||||
hs.score += addScore;
|
||||
} else {
|
||||
heroScores.push({ hid: actorId, score: addScore })
|
||||
}
|
||||
addSumScore += addScore;
|
||||
}
|
||||
// if(pvpDefense && !isSuccess) {
|
||||
// if(pvpDefense && pvpDefense.defense) {
|
||||
// let { attack, defense, heroScores, score, defenseScoreCnt, refDefenseScore } = pvpDefense;
|
||||
// if(shouldRefresh(refDefenseScore, new Date())) {
|
||||
// defenseScoreCnt = 0; refDefenseScore = new Date();
|
||||
// }
|
||||
// if(defenseScoreCnt < PVP.PVP_DEFENSE_SUCCESS_REWARD_MAX_CNT) {
|
||||
// for(let { actorId } of defense.heroes) {
|
||||
// let hs = heroScores.find(cur => cur.hid == actorId);
|
||||
// const dicOpp = gameData.pvpOpponent.get(curOpp.pos);
|
||||
// let addScore = PVP.PVP_DEFENSE_SUCCESS_REWARD - dicOpp.score;
|
||||
// if(hs) {
|
||||
// hs.score += addScore;
|
||||
// } else {
|
||||
// heroScores.push({ hid: actorId, score: addScore })
|
||||
// }
|
||||
// addSumScore += addScore;
|
||||
// }
|
||||
|
||||
let newAttack = <Attack>calLineupScore(attack, heroScores);
|
||||
let newDefense = <Defense>calLineupScore(defense, heroScores);
|
||||
// let newAttack = <Attack>calLineupScore(attack, heroScores);
|
||||
// let newDefense = <Defense>calLineupScore(defense, heroScores);
|
||||
|
||||
|
||||
await PvpDefenseModel.updateInfo(pvpDefense.roleId, { attack: newAttack, defense: newDefense, heroScores, score: score + addSumScore, defenseScoreCnt: defenseScoreCnt + 1, refDefenseScore });
|
||||
// await PvpDefenseModel.updateInfo(pvpDefense.roleId, { attack: newAttack, defense: newDefense, heroScores, score: score + addSumScore, defenseScoreCnt: defenseScoreCnt + 1, refDefenseScore });
|
||||
|
||||
} else {
|
||||
await PvpDefenseModel.updateInfo(pvpDefense.roleId, { defenseScoreCnt: defenseScoreCnt + 1, refDefenseScore });
|
||||
}
|
||||
}
|
||||
}
|
||||
// } else {
|
||||
// await PvpDefenseModel.updateInfo(pvpDefense.roleId, { defenseScoreCnt: defenseScoreCnt + 1, refDefenseScore });
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
let defenseInfo = new PvpRecordPlayerInfo();
|
||||
defenseInfo.setByHistoryOpp(oppRole, oppHeroRecords, !isSuccess, isSuccess ? 0 : addSumScore, pvpDefense?.serverId||serverId)
|
||||
@@ -697,8 +697,8 @@ export async function savePvpSeasonResult(pvpDefense: PvpDefenseType, seasonNum:
|
||||
}
|
||||
newScore += pvpHeroReward.heroscore;
|
||||
} else {
|
||||
newHeroScores.push(heroScore);
|
||||
newScore += heroScore.score;
|
||||
newHeroScores.push({...heroScore, score:0});
|
||||
// newScore += heroScore.score;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -793,4 +793,12 @@ export function checkPvpSeasonIsSummit() {
|
||||
export function checkPvpSeasonIsWaiting() {
|
||||
let status = getPvpSeasonStatus();
|
||||
return status == PVP_SEASON_STATUS.WAITING;
|
||||
}
|
||||
|
||||
export function refreshBuyChallengeCnt(buyChallengeTime:number = 0){
|
||||
let refTime = getZeroPointD(SHOP_REFRESH_TYPE.DAILY);
|
||||
if(refTime.getTime() > buyChallengeTime){
|
||||
return true
|
||||
}
|
||||
return false;
|
||||
}
|
||||
Reference in New Issue
Block a user