远征:修改碾压判断条件
This commit is contained in:
@@ -205,11 +205,6 @@ export class ExpeditionBattleHandler {
|
||||
if (preBattle == -1) return resResult(STATUS.BATTLE_NEED_PREVIOUS_GK);
|
||||
}
|
||||
|
||||
// 检查战力是否足够
|
||||
if(!vipCanSkipExpedition(dicWar.recommendedPower, topLineupCe, vipStartTime)) {
|
||||
return resResult(STATUS.EXPEDITION_SKIP_POWER_NOT_ENOUGH)
|
||||
}
|
||||
|
||||
// 检查record
|
||||
let expeditionRecord = await ExpeditionRecordModel.getExpeditionRecordByCode(expeditionCode);
|
||||
let expeditionWarRecord = await ExpeditionWarRecordModel.getRecordByCodeAndId(expeditionCode, expeditionId);
|
||||
@@ -220,6 +215,11 @@ export class ExpeditionBattleHandler {
|
||||
return resResult(STATUS.EXPEDITION_DUPLICATE_CHALLENGE);
|
||||
}
|
||||
|
||||
// 检查战力是否足够
|
||||
if(!vipCanSkipExpedition(expeditionWarRecord.ce, topLineupCe, vipStartTime)) {
|
||||
return resResult(STATUS.EXPEDITION_SKIP_POWER_NOT_ENOUGH)
|
||||
}
|
||||
|
||||
// 更新敌人剩余状态及战斗状态
|
||||
expeditionWarRecord = await ExpeditionWarRecordModel.updateEnemiesStatus(expeditionCode, expeditionId, EXPEDITION_WAR_RECORD_STATUS.SUCCESS, []);
|
||||
// 更新点数
|
||||
|
||||
@@ -227,5 +227,5 @@ export function vipCanSkipTower(recommendCeSum: number, heroesCeSum: number, vip
|
||||
}
|
||||
|
||||
export function vipCanSkipExpedition(recommendCe: number, topLineupCe: number, vipStartTime: number) {
|
||||
return vipStartTime > 0 && topLineupCe > recommendCe;
|
||||
return vipStartTime > 0 && topLineupCe > recommendCe * VIP.EXPENDITION_SKIP_CE_RATIO_WITH_VIP;
|
||||
}
|
||||
@@ -6,7 +6,6 @@ import { EXPEDITION_WAR_RECORD_STATUS, SYSTEM_OPEN_ID } from '../consts';
|
||||
import { ExpeditionWarRecordModel } from '../db/ExpeditionWarRecord';
|
||||
import { HeroType } from '../db/Hero';
|
||||
import { gameData } from '../pubUtils/data';
|
||||
import { getTimeFunD } from '../pubUtils/timeUtil';
|
||||
import { ExpeditionRecordModel } from '../db/ExpeditionRecord';
|
||||
import { Attribute, AttributeCal } from '../domain/roleField/attribute';
|
||||
import * as dicParam from '../pubUtils/dicParam';
|
||||
@@ -221,8 +220,8 @@ export async function matchRobots(scale: number, myCe: number, robotCe: number,
|
||||
export async function getCEScaleAndRange(roleId: string, curDicExpedition: any) {
|
||||
// 匹配,判断是不是新手期
|
||||
const role = await RoleModel.findByRoleId(roleId);
|
||||
let timef = getTimeFunD(role.createdAt)
|
||||
let isNew = timef.getDayGap() <= 3;
|
||||
let isNew = (role.expeditionHistoryResetCnt||0) <= 3;
|
||||
|
||||
let scale = isNew?curDicExpedition.CEScaleNew:curDicExpedition.CEScale;
|
||||
let range = isNew?curDicExpedition.CERangeNew:curDicExpedition.CERange;
|
||||
return {scale, range, lv: role.lv}
|
||||
|
||||
@@ -136,7 +136,7 @@ export function calculateWarStar(warStar: WarStar[] = [], battleId: number, star
|
||||
newStar = stars.filter(cur => cur > 0).length;
|
||||
newStars = stars;
|
||||
let dicWar = gameData.war.get(battleId);
|
||||
newWarStars.push({ id: battleId, warType: dicWar.warType, star: newStar, stars: newStars});
|
||||
if(dicWar) newWarStars.push({ id: battleId, warType: dicWar.warType, star: newStar, stars: newStars});
|
||||
}
|
||||
return { newWarStars, newStars, newStar };
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import BaseModel from './BaseModel';
|
||||
import { index, getModelForClass, prop, DocumentType } from '@typegoose/typegoose';
|
||||
import { genCode } from '../pubUtils/util';
|
||||
import { RoleModel } from './Role';
|
||||
|
||||
class Heroes {
|
||||
@prop({ required: true })
|
||||
@@ -41,6 +42,7 @@ export default class ExpeditionRecord extends BaseModel {
|
||||
const code = genCode(8);
|
||||
|
||||
const result: ExpeditionRecordType = await ExpeditionRecordModel.findOneAndUpdate({ expeditionCode: code }, {...params, status: 1}, { new: true, upsert: true }).lean(lean);
|
||||
await RoleModel.increaseExpeditionCnt(params.roleId, 1);
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
@@ -248,6 +248,8 @@ export default class Role extends BaseModel {
|
||||
expeditionResetCnt: number; // 远征重置次数
|
||||
@prop({ required: true, default: new Date() })
|
||||
expeditionResetRefTime: Date; // 远征重置次数刷新时间
|
||||
@prop({ required: true, default: 0 })
|
||||
expeditionHistoryResetCnt: number; // 远征重置次数
|
||||
|
||||
// 秘境相关
|
||||
@prop({ required: true, default: 0 })
|
||||
@@ -410,6 +412,10 @@ export default class Role extends BaseModel {
|
||||
let role: RoleType = await RoleModel.findOneAndUpdate({ roleId }, { $inc: { expeditionPoint: point } }, { new: true }).lean(lean);
|
||||
return role;
|
||||
}
|
||||
public static async increaseExpeditionCnt(roleId: string, cnt: number) {
|
||||
let role: RoleType = await RoleModel.findOneAndUpdate({ roleId }, { $inc: { expeditionHistoryResetCnt: cnt } }, { new: true }).lean();
|
||||
return role;
|
||||
}
|
||||
|
||||
public static async levelup(roleId: string, lv: number, exp: number, getters = false, virtuals = true) {
|
||||
let role: RoleType = await RoleModel.findOneAndUpdate({ roleId }, { $set: { exp, lv } }, { new: true }).lean({ getters, virtuals });
|
||||
|
||||
@@ -396,13 +396,6 @@ class Time {
|
||||
return this._returnResult(preDate.getTime() + n * day * this.DAY_TO_MS);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 获取某个日期到今天之间差几天
|
||||
*/
|
||||
public getDayGap() {
|
||||
return this._getDayGap(this.now, this.time);
|
||||
}
|
||||
|
||||
/**
|
||||
* 检查某个时间距离今天是否在day天以内
|
||||
* @param day day天以内
|
||||
|
||||
Reference in New Issue
Block a user