feat(巅峰演武): 军功修改、匹配修改、新增挑战次数购买接口

This commit is contained in:
zhangxk
2023-10-12 21:20:26 +08:00
parent 778a31db7f
commit 00059fa2c2
9 changed files with 221 additions and 39 deletions

View File

@@ -1288,6 +1288,7 @@ export enum ITEM_CHANGE_REASON {
NOVEMBER_COST = 208, // 辜月集会购买消耗
EXCHANGE_SPIRIT = 209, // 将灵合成
RESONANCE_LOCK_POSITION = 210, // 共鸣解锁阵位消耗
PVP_BUY_CHALLENGE_CNT = 211, // 巅峰演武购买挑战次数消耗
}
export enum TA_EVENT {

View File

@@ -195,6 +195,11 @@ export const STATUS = {
PVP_SEASON_NOT_OPEN: { code: 20809, simStr: 'pvp赛季未开启' },
PVP_CAN_NOT_SAVE_DEFENSE: { code: 20810, simStr: '结算期不可保存防守阵容' },
PVP_CAN_NOT_CHANGE_HERO: { code: 20811, simStr: '只可用于设置副将不可变更武将' },
PVP_CAN_NOT_BUY_CHALLENGE_CAT: { code: 20812, simStr: '超过当日可购买次数, 不可购买' },
PVP_BUY_CHALLENGE_FAIL: { code: 20813, simStr: '购买失败' },
PVP_SWEEP_NOT_CE: { code: 20814, simStr: '碾压战力不足' },
// 军团 20900-20999
GUILD_AUTH_NOT_ENOUGH: { code: 20900, simStr: '权限不足' },
@@ -845,9 +850,9 @@ export const STATUS = {
RESONANCE_PUT_NOT_POSITION: { code: 81012, simStr: '武将数量不足,不可上阵' },
RESONANCE_NOT_PUT_POSITION: { code: 81013, simStr: '该武将未在阵中' },
RESONANCE_OFF_POSITION_FAIL: { code: 81014, simStr: '该武将下阵失败' },
RESONANCE__HID_NOT_CAN: { code: 81015, simStr: '共鸣武将不可养成' },
RESONANCE__HID_NOT_REBIRTH: { code: 81015, simStr: '共鸣武将不可重生' },
RESONANCE__HID_NOT_REBORN: { code: 81015, simStr: '共鸣武将不可传承' },
RESONANCE__HID_NOT_CAN: { code: 81016, simStr: '共鸣武将不可养成' },
RESONANCE__HID_NOT_REBIRTH: { code: 81017, simStr: '共鸣武将不可重生' },
RESONANCE__HID_NOT_REBORN: { code: 81018, simStr: '共鸣武将不可传承' },
@@ -855,6 +860,7 @@ export const STATUS = {
}
export const PAY_37_CALLBACK_CODE = {

View File

@@ -68,6 +68,11 @@ export default class PvpDefense extends BaseModel {
@prop({ required: true })
refDefenseScore: Date;
@prop({required: true, default : 0})
buyChallengeCnt:number; // 每日已购买次数
@prop({ required: true, default: 0 })
buyChallengeTime: number; // 上一次购买时间
public static async findByRoleId(roleId: string, getters = false) {
const result: PvpDefenseType = await PvpDefenseModel.findOne({ roleId }).lean({ getters});
return result;

View File

@@ -277,6 +277,7 @@ export class PvpDataReturn {
heroScores: HeroScoreReturn[] = [];
hasSaveDefense: boolean = false;
resultRecord: PvpSeasonResultRecord;
buyChallengeCnt: number = 0;
setPvpDefense(pvpDefense: PvpDefenseType) {
this.score = pvpDefense.score;
@@ -296,7 +297,7 @@ export class PvpDataReturn {
if(pvpDefense.defense) this.defense = new DefenseLineupReturn(pvpDefense.defense, defenseCe);
this.heroScores = pvpDefense.heroScores.map(cur => new HeroScoreReturn(cur, pvpDefense.defense));
this.buyChallengeCnt = pvpDefense.buyChallengeCnt;
}
static getAttackAndDefenseCe(pvpDefense: PvpDefenseType) {

View File

@@ -639,7 +639,13 @@ export function getPLvByScore(score: number) {
export function getPlvAndScore(scores: number[] = []) {
if (scores.length <= 0) scores = [0];
let maxScore = Math.max(...scores); // 等级:军功最高者的军功*6
// let maxScore = Math.max(...scores); // 等级:军功最高者的军功*6
scores = scores.sort((a, b) => {
if (a !== b) {
return b - a;
}
});
let maxScore = scores.slice(0, 6).reduce((acc, curr) => acc + curr, 0);
let score = scores.reduce((pre, cur) => pre + cur, 0);
return { score, pLv: getPLvByScore(maxScore * param.PVP.PVP_LINEUP_HEROS) };
}

View File

@@ -44,6 +44,8 @@ export const PVP = {
PVP_MATCH_ROBOT: 1500, // 巅峰演武多少分以下匹配的全是机器人(该分以上及其该分优先匹配真人)
PVP_RECORD_SOCRE: 1500, // 巅峰演武达到多少分可以查看战报
PVP_NEWSEASON_SHOWTIME: 259200, // 巅峰演武新赛季开启动画显示的秒数
PVP_CHALLENGE_COST_TIMES: 5, // 巅峰演武每天购买挑战次数上限
PVP_CHALLENGE_BUY_TIMES_COST: '31002&100&2|31002&150&3', // 名将擂台每天购买挑战次数花费 物品id&数量&购买次数
};
export const ARMY = {
ARMY_CREAT_COST: 500, // 创建军团需要的元宝
@@ -379,7 +381,7 @@ export const ACTIVITY = {
ACTIVITY_JUMP_TIME: 90, // 登高总时长
ACTIVITY_JUMP_SCORE: '0&1|1&1|2&2', // 云类型&登高分数
ACTIVITY_THROWING_COUNT: 10, // 投壶次数
ACTIVITY_THROWING_SCORE: '0&4|1&3|2&2|3&1', // 投壶分数
ACTIVITY_THROWING_SCORE: '0&2|1&3|2&4|3&2', // 投壶分数
};
export const BATTLE_PREPARING = {
CHANGE_ORDER_OPEN: 109, // 出兵界面行动顺序按钮开启关卡