pvp:刷新
This commit is contained in:
@@ -130,6 +130,23 @@ export async function matchPlayerByRank(seasonNum: number, chosenOpps: string[],
|
||||
oppRank++;
|
||||
}
|
||||
}
|
||||
} else if (myRank == 2) { // 第二名
|
||||
if (pos == 1) {
|
||||
oppRank = 1;
|
||||
while (ridRanks.includes(oppRank)) {
|
||||
oppRank--;
|
||||
}
|
||||
} else if (pos == 2) {
|
||||
oppRank = 3;
|
||||
while (ridRanks.includes(oppRank)) {
|
||||
oppRank++;
|
||||
}
|
||||
} else {
|
||||
oppRank = 4;
|
||||
while (ridRanks.includes(oppRank)) {
|
||||
oppRank++;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (pos == 1 || pos == 2) { // 刷新我前一名
|
||||
oppRank = myRank - 1;
|
||||
|
||||
@@ -56,7 +56,7 @@ export default class LadderMatch extends BaseModel {
|
||||
public static async findByRoleIdAndInclude(roleId: string) {
|
||||
const result: LadderMatchType = await LadderMatchModel.findOne({ roleId })
|
||||
.populate('role', 'roleId roleName head frame spine heads frames spines title lv updatedAt')
|
||||
.populate('defense.heroes.hero', 'hid skinId quality star colorStar lv skins')
|
||||
.populate('defense.heroes.hero', 'hid skinId quality star colorStar lv skins job')
|
||||
.lean();
|
||||
return result;
|
||||
}
|
||||
@@ -78,7 +78,7 @@ export default class LadderMatch extends BaseModel {
|
||||
public static async updateByRoleIdAndInclude(roleId: string, params: LadderUpdateInter) {
|
||||
const defense: LadderMatchType = await LadderMatchModel.findOneAndUpdate({ roleId }, { $set: params}, { new: true })
|
||||
.populate('role', 'roleId roleName head frame spine heads frames spines title lv updatedAt')
|
||||
.populate('defense.heroes.hero', 'hid skinId quality star colorStar lv skins')
|
||||
.populate('defense.heroes.hero', 'hid skinId quality star colorStar lv skins job')
|
||||
.lean();
|
||||
return defense;
|
||||
}
|
||||
@@ -98,7 +98,7 @@ export default class LadderMatch extends BaseModel {
|
||||
public static async lock(serverId: number, roleId: string, rank: number) {
|
||||
const defense: LadderMatchType = await LadderMatchModel.findOneAndUpdate({ serverId, roleId, rank, locked: 0 }, { $set: { locked: 1 }}, { new: true })
|
||||
.populate('role', 'roleId roleName head frame spine heads frames spines title lv updatedAt')
|
||||
.populate('defense.heroes.hero', 'hid skinId quality star colorStar lv skins')
|
||||
.populate('defense.heroes.hero', 'hid skinId quality star colorStar lv skins job')
|
||||
.lean();
|
||||
return defense;
|
||||
}
|
||||
|
||||
@@ -35,6 +35,8 @@ export default class PvpHistoryOpp extends BaseModel {
|
||||
pLv: number; // 对手等级
|
||||
@prop({ required: true, default: 1 })
|
||||
lv: number; // 对手角色等级
|
||||
@prop({ required: true, default: 0 })
|
||||
job: number; // 对手职业
|
||||
@prop({ required: true, default: 1 })
|
||||
title: number; // 对手等级
|
||||
@prop({ required: true, default: 0 })
|
||||
|
||||
@@ -337,6 +337,7 @@ export class LadderOppDetailHeroReturn {
|
||||
star: number = 0; // 星级
|
||||
colorStar: number = 0; // 彩星
|
||||
quality: number = 0; // 品质
|
||||
job: number = 0; // 职业
|
||||
skill: string = ''; // 技能
|
||||
seid: string = ''; // 技能
|
||||
spine: string = ''; // 动画
|
||||
@@ -353,6 +354,8 @@ export class LadderOppDetailHeroReturn {
|
||||
this.skill = warJson.skill;
|
||||
this.seid = warJson.seid;
|
||||
this.spine = warJson.spine;
|
||||
let dicHero = gameData.hero.get(warJson.actorId);
|
||||
if(dicHero) this.job = dicHero.jobid;
|
||||
|
||||
if(defensHero) {
|
||||
this.outIndex = defensHero.order;
|
||||
@@ -367,6 +370,7 @@ export class LadderOppDetailHeroReturn {
|
||||
this.colorStar = hero.colorStar;
|
||||
let skin = hero.skins.find(cur => cur.enable);
|
||||
if(skin) this.talent = skin.talent;
|
||||
this.job = hero.job;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,9 +1,16 @@
|
||||
import { prop, mongoose, Ref } from '@typegoose/typegoose';
|
||||
import { DicWarJson } from '../pubUtils/dictionary/DicWarJson';
|
||||
import Hero, { HeroType, Talent } from '../db/Hero';
|
||||
import Hero, { HeroType } from '../db/Hero';
|
||||
import { nowSeconds } from '../pubUtils/timeUtil';
|
||||
import { DicHero } from '../pubUtils/dictionary/DicHero';
|
||||
|
||||
|
||||
class Talent {
|
||||
@prop({ required: true })
|
||||
id: number; // 天赋表id
|
||||
@prop({ required: true })
|
||||
level: number; // 激活等级
|
||||
}
|
||||
// 从玩家数据中覆盖warjson的部分字段
|
||||
export class PvpHeroInfo {
|
||||
@prop({ required: true })
|
||||
@@ -17,6 +24,8 @@ export class PvpHeroInfo {
|
||||
@prop({ required: false })
|
||||
star?: number = 0; // 角色星级
|
||||
@prop({ required: false })
|
||||
job?: number = 0; // 角色职业
|
||||
@prop({ required: false })
|
||||
lv?: number = 0; // 角色等级
|
||||
@prop({ required: false })
|
||||
skill?: string = "0"; // 技能
|
||||
@@ -28,7 +37,7 @@ export class PvpHeroInfo {
|
||||
colorStar?: number = 0; // 觉醒
|
||||
@prop({ required: false })
|
||||
quality?: number = 0; // 品质
|
||||
@prop({ required: false })
|
||||
@prop({ required: false, type: Talent, _id: false })
|
||||
talent?: Talent[] = []; // 品质
|
||||
|
||||
@prop({ required: true, _id: false })
|
||||
@@ -40,6 +49,7 @@ export class PvpHeroInfo {
|
||||
this.actorName = hero.hName;
|
||||
this.star = hero.star;
|
||||
this.lv = hero.lv;
|
||||
this.job = hero.job;
|
||||
this.colorStar = hero.colorStar;
|
||||
this.quality = hero.quality;
|
||||
let skin = hero.skins?.find(cur => cur.enable);
|
||||
@@ -51,12 +61,14 @@ export class PvpHeroInfo {
|
||||
this.skinId = dicHero.heroId;
|
||||
this.actorName = dicHero.name;
|
||||
this.quality = dicHero.quality;
|
||||
this.job = dicHero.jobid;
|
||||
if(dicHero.quality == 4) {
|
||||
this.star = 6;
|
||||
this.colorStar = dicHero.initialStars;
|
||||
} else {
|
||||
this.star = dicHero.initialStars;
|
||||
}
|
||||
|
||||
this.lv = lv;
|
||||
}
|
||||
|
||||
@@ -133,8 +145,10 @@ export class PvpEnemies extends Enemies {
|
||||
@prop({ required: true })
|
||||
lv: number;
|
||||
@prop({ required: true })
|
||||
score: number;
|
||||
job: number;
|
||||
@prop({ required: true })
|
||||
score: number;
|
||||
@prop({ required: true, type: () => Talent, _id: false })
|
||||
talent: Talent[];
|
||||
|
||||
// score: 这个武将的军功
|
||||
@@ -146,6 +160,7 @@ export class PvpEnemies extends Enemies {
|
||||
this.lv = heroInfo.lv;
|
||||
this.score = score;
|
||||
this.talent = heroInfo.talent;
|
||||
this.job = heroInfo.job;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user