pvp:刷新

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