✨ feat(战场): 保存战阵连携顺序
This commit is contained in:
@@ -8,6 +8,7 @@ import { DicGVGAreaPoint } from "../pubUtils/dictionary/DicGVGAreaPoint";
|
||||
import { InitTeamParam, SaveTeamUpdateParam } from "../domain/gvgField/gvgDb";
|
||||
import { GVGHeroInfo } from "../domain/dbGeneral";
|
||||
import { GVG_BATTLE_PRE_TIME, GVG_CATAPULT, GVG_ROBOT } from "../consts";
|
||||
import { Combo } from "../domain/battleField/pvp";
|
||||
|
||||
@index({ roleId: 1, index: 1 })
|
||||
@index({ teamCode: 1 })
|
||||
@@ -110,6 +111,9 @@ export default class GVGTeam extends BaseModel {
|
||||
@prop({ required: true, type: () => GVGHeroInfo, _id: false })
|
||||
lineup: GVGHeroInfo[];
|
||||
|
||||
@prop({ required: true, type: () => Combo, _id: false })
|
||||
combo: Combo[];
|
||||
|
||||
@prop({ required: true })
|
||||
lineupCe: number;
|
||||
|
||||
@@ -137,6 +141,7 @@ export default class GVGTeam extends BaseModel {
|
||||
const teamCode = genCode(8);
|
||||
const insert = Object.assign(doc.toJSON(), { ...initParam, teamCode });
|
||||
delete insert.lineup;
|
||||
delete insert.combo;
|
||||
const team: GVGTeamType | null = await GVGTeamModel.findOneAndUpdate({ roleId, index }, { $setOnInsert: insert, $set: updateParam }, { upsert: true, new: true }).lean();
|
||||
return team;
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@ import BaseModel from './BaseModel';
|
||||
import { index, getModelForClass, prop, DocumentType, mongoose } from '@typegoose/typegoose';
|
||||
import { RoleType } from './Role';
|
||||
import { getZeroPoint } from '../pubUtils/timeUtil';
|
||||
import { Combo } from '../domain/battleField/pvp';
|
||||
|
||||
export class Lineup {
|
||||
@prop({ required: true })
|
||||
@@ -58,6 +59,9 @@ export default class GVGVestigeRank extends BaseModel {
|
||||
@prop({ required: true, type: Lineup, default: [], _id: false })
|
||||
lineup: Lineup[]; // 阵容
|
||||
|
||||
@prop({ required: true, type: () => Combo, default: [], _id: false })
|
||||
combo: Combo[]; // 阵容
|
||||
|
||||
@prop({ required: true, type: Number, default: [], _id: false })
|
||||
oppRanks: number[]; // 对手的排名
|
||||
|
||||
|
||||
@@ -115,8 +115,8 @@ export default class PvpDefense extends BaseModel {
|
||||
const result: PvpDefenseType = await PvpDefenseModel.findOne({ roleId })
|
||||
.populate('role', 'serverId head frame spine heads frames spines topLineupCe roleId roleName lv globalCeAttr title')
|
||||
.populate('heroes.hero')
|
||||
.populate('oppPlayers.oppDef', 'oppRoleId pos roleName head frame spine heads frames spines rankLv title lv pLv defCe heroes warId buff')
|
||||
.populate('oppBeforePlayers.oppDef', 'oppRoleId pos roleName head frame spine heads frames spines rankLv title lv pLv defCe heroes warId buff').lean({ getters: true, virtuals: true });
|
||||
.populate('oppPlayers.oppDef', 'oppRoleId pos roleName head frame spine heads frames spines rankLv title lv pLv defCe heroes warId buff combo')
|
||||
.populate('oppBeforePlayers.oppDef', 'oppRoleId pos roleName head frame spine heads frames spines rankLv title lv pLv defCe heroes warId buff combo').lean({ getters: true, virtuals: true });
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
@@ -11,6 +11,13 @@ export class HeroScores {
|
||||
score: number;
|
||||
}
|
||||
|
||||
export class Combo {
|
||||
@prop({ required: true })
|
||||
groupId: number;
|
||||
@prop({ required: true, type: Number })
|
||||
levelList: number[];
|
||||
}
|
||||
|
||||
@index({ roleId: 1, oppRoleId: 1 })
|
||||
export default class PvpHistoryOpp extends BaseModel {
|
||||
@prop({ required: true })
|
||||
@@ -47,9 +54,11 @@ export default class PvpHistoryOpp extends BaseModel {
|
||||
warId: number; // 对手选择的地图id
|
||||
@prop({ required: true })
|
||||
buff: number; // 对手选择的buff
|
||||
@prop({ required: true, type: PvpEnemies, default: [], _id: false })
|
||||
@prop({ required: true, type: () => PvpEnemies, default: [], _id: false })
|
||||
heroes: PvpEnemies[]; // 对手阵容
|
||||
@prop({ required: true, type: PvpOtherHeroes, default: [] })
|
||||
@prop({ required: true, type: () => Combo })
|
||||
combo: Combo[]; // 状态 0-仅刷出 1-挑战过
|
||||
@prop({ required: true, type: () => PvpOtherHeroes, default: [] })
|
||||
otherHeroes: PvpOtherHeroes[]; // 阵容以外所有武将信息
|
||||
@prop({ required: true, default: 0 })
|
||||
status: number; // 状态 0-仅刷出 1-挑战过
|
||||
|
||||
Reference in New Issue
Block a user