巅峰演武:赛季优化修改
This commit is contained in:
@@ -3,13 +3,13 @@ import { prop, Ref, mongoose } from '@typegoose/typegoose';
|
||||
import Hero from '../../db/Hero';
|
||||
import { PvpDefenseType } from '../../db/PvpDefense';
|
||||
import PvpHistoryOpp from '../../db/PvpHistoryOpp';
|
||||
import { PvpSaveDataType } from '../../db/PvpSaveData';
|
||||
import { PvpSeasonResultType } from '../../db/PvpSeasonResult';
|
||||
import { getPlvAndScore } from '../../pubUtils/data';
|
||||
import { RewardInter } from '../../pubUtils/interface';
|
||||
import { nowSeconds } from '../../pubUtils/timeUtil';
|
||||
|
||||
|
||||
// 防守阵容武将
|
||||
export class DefenseHero {
|
||||
export class DefenseHeroInSaveData {
|
||||
@prop({ required: true })
|
||||
actorId: number; // 武将id
|
||||
@prop({ required: true })
|
||||
@@ -18,16 +18,26 @@ export class DefenseHero {
|
||||
dataId: number;
|
||||
@prop({ required: true })
|
||||
order: number;
|
||||
@prop({ ref: 'Hero', type: mongoose.Schema.Types.ObjectId })
|
||||
hero: Ref<Hero>;
|
||||
|
||||
constructor(param: { actorId: number, ai: number, dataId: number, order: number }, heroId: string) {
|
||||
constructor(param: { actorId: number, ai: number, dataId: number, order: number }) {
|
||||
this.actorId = param.actorId;
|
||||
this.ai = param.ai;
|
||||
this.dataId = param.dataId;
|
||||
this.order = param.order;
|
||||
}
|
||||
}
|
||||
|
||||
// 防守阵容武将
|
||||
export class DefenseHero extends DefenseHeroInSaveData {
|
||||
|
||||
@prop({ ref: 'Hero', type: mongoose.Schema.Types.ObjectId })
|
||||
hero: Ref<Hero>;
|
||||
|
||||
constructor(param: { actorId: number, ai: number, dataId: number, order: number }, heroId: string) {
|
||||
super(param);
|
||||
this.hero = heroId;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// 防守阵容
|
||||
@@ -228,7 +238,9 @@ export class PvpSeasonResultRecord {
|
||||
|
||||
export class PvpDataReturn {
|
||||
seasonNum: number;
|
||||
seasonStartTime: number;
|
||||
seasonEndTime: number;
|
||||
seasonRewardTime: number;
|
||||
myRank: number = 0;
|
||||
oppPlayers: OppPlayerReturn[] = [];
|
||||
defense: DefenseLineupReturn = null;
|
||||
@@ -244,7 +256,7 @@ export class PvpDataReturn {
|
||||
receivedBox: number[] = [];
|
||||
hisScore: number = 0;
|
||||
heroScores: HeroScoreReturn[] = [];
|
||||
isFirstEntry: boolean = false;
|
||||
hasSaveDefense: boolean = false;
|
||||
resultRecord: PvpSeasonResultRecord;
|
||||
|
||||
setPvpDefense(pvpDefense: PvpDefenseType) {
|
||||
@@ -284,10 +296,6 @@ export class PvpDataReturn {
|
||||
return { attackCe, defenseCe };
|
||||
}
|
||||
|
||||
setIsFirstEntry(isFirstEntry: boolean) {
|
||||
this.isFirstEntry = isFirstEntry;
|
||||
}
|
||||
|
||||
setOppPlayers(oppPlayers: OppPlayerReturn[]) {
|
||||
this.oppPlayers = oppPlayers;
|
||||
}
|
||||
@@ -296,12 +304,53 @@ export class PvpDataReturn {
|
||||
this.myRank = rankLv;
|
||||
}
|
||||
|
||||
setPvpConfig(seasonNum: number, seasonEndTime: number) {
|
||||
setPvpConfig(seasonNum: number, seasonStartTime: number, seasonEndTime: number, seasonRewardTime: number) {
|
||||
this.seasonNum = seasonNum;
|
||||
this.seasonStartTime = seasonStartTime;
|
||||
this.seasonEndTime = seasonEndTime;
|
||||
this.seasonRewardTime = seasonRewardTime;
|
||||
}
|
||||
|
||||
setPvpSeasonResult(pvpSeasonResult: PvpSeasonResultType) {
|
||||
this.resultRecord = new PvpSeasonResultRecord(pvpSeasonResult);
|
||||
}
|
||||
|
||||
getHasSaveDefense() {
|
||||
if(this.seasonRewardTime < nowSeconds() && this.seasonStartTime > nowSeconds()) {
|
||||
return true;
|
||||
}
|
||||
return !!this.defense;
|
||||
}
|
||||
|
||||
calHasSaveDefense() {
|
||||
this.hasSaveDefense = this.getHasSaveDefense();
|
||||
return this.hasSaveDefense;
|
||||
}
|
||||
|
||||
setChallengeCnt(challengeCnt: number) {
|
||||
return this.challengeCnt = challengeCnt;
|
||||
}
|
||||
}
|
||||
|
||||
export class pvpSaveDataReturn {
|
||||
warId: number; // 地图id
|
||||
isUsing: boolean = false; // 设置的是否是这张地图
|
||||
hasSet: boolean = false; // 玩家是否设置过
|
||||
buff: number; // 选择的地图buff,没有设置过不返回
|
||||
heroes: DefenseHeroInSaveData[]; // 玩家武将,没有设置不返回
|
||||
|
||||
constructor(warId: number) {
|
||||
this.warId = warId;
|
||||
}
|
||||
|
||||
setUserSaveData(pvpSaveData: PvpSaveDataType) {
|
||||
if(!pvpSaveData) return;
|
||||
this.hasSet = true;
|
||||
this.buff = pvpSaveData.buff;
|
||||
this.heroes = pvpSaveData.heroes;
|
||||
}
|
||||
|
||||
setAsUsing() {
|
||||
this.isUsing = true;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user