好友:武将详情
This commit is contained in:
@@ -62,6 +62,20 @@ export default class Jewel extends BaseModel {
|
||||
return jewels;
|
||||
}
|
||||
|
||||
public static async findbyRoleAndHids(roleId: string, hids: number[]) {
|
||||
const jewels: JewelType[] = await JewelModel.find({ roleId, hid: { $in: hids } }).lean();
|
||||
return jewels;
|
||||
}
|
||||
|
||||
public static async findMapbyRoleAndHids(roleId: string, hids: number[]) {
|
||||
const jewels = await JewelModel.findbyRoleAndHids(roleId, hids);
|
||||
let map = new Map<number, JewelType>();
|
||||
for(let jewel of jewels) {
|
||||
map.set(jewel.seqId, jewel);
|
||||
}
|
||||
return map;
|
||||
}
|
||||
|
||||
public static async findbySeqId(seqId: number, select?: string ) {
|
||||
const jewel: JewelType = await JewelModel.findOne({ seqId }).select(select).lean();
|
||||
return jewel;
|
||||
|
||||
@@ -2,6 +2,9 @@ import { RoleType } from "../../db/Role";
|
||||
import { FriendShipType } from "../../db/FriendShip";
|
||||
import * as friendUtil from '../../pubUtils/friendUtil'
|
||||
import { FRIEND_RELATION_TYPE } from "../../consts";
|
||||
import { EPlace, HeroType, Stone } from "../../db/Hero";
|
||||
import { JewelType, RandSe } from "../../db/Jewel";
|
||||
import { reduceCe } from "../../pubUtils/util";
|
||||
|
||||
export class FriendParams {
|
||||
roleId: string;
|
||||
@@ -118,4 +121,102 @@ export class BlackListParam extends FriendParams {
|
||||
setOnline(isOnline: boolean) {
|
||||
this.isOnline = isOnline;
|
||||
}
|
||||
}
|
||||
|
||||
export class HeroDetailJewelRandSeParam {
|
||||
id: number;
|
||||
seid: number;
|
||||
rand: number;
|
||||
|
||||
constructor(randSe: RandSe) {
|
||||
this.id = randSe.id;
|
||||
this.seid = randSe.seid;
|
||||
this.rand = randSe.rand;
|
||||
}
|
||||
}
|
||||
|
||||
export class HeroDetailJewelParam {
|
||||
seqId: number;
|
||||
id: number;
|
||||
randSe: HeroDetailJewelRandSeParam[] = [];
|
||||
|
||||
constructor(jewel: JewelType) {
|
||||
this.seqId = jewel.seqId;
|
||||
this.id = jewel.id;
|
||||
for(let randSe of jewel.randSe) {
|
||||
this.randSe.push(new HeroDetailJewelRandSeParam(randSe));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export class HeroDetailEplaceParam {
|
||||
id: number;
|
||||
equipId: number;
|
||||
lv: number;
|
||||
quality: number;
|
||||
star: number;
|
||||
stone: Stone[];
|
||||
jewelId: number;
|
||||
jewel: HeroDetailJewelParam = null;
|
||||
|
||||
constructor(equip: EPlace) {
|
||||
this.id = equip.id;
|
||||
this.equipId = equip.equipId;
|
||||
this.lv = equip.lv;
|
||||
this.quality = equip.quality;
|
||||
this.star = equip.star;
|
||||
this.stone = equip.stones;
|
||||
this.jewelId = equip.jewel;
|
||||
}
|
||||
|
||||
setJewel(jewel: JewelType) {
|
||||
this.jewel = new HeroDetailJewelParam(jewel);
|
||||
}
|
||||
}
|
||||
|
||||
export class HeroDetailParam {
|
||||
roleId: string;
|
||||
hid: number;
|
||||
ce: number;
|
||||
lv: number;
|
||||
star: number;
|
||||
colorStar: number;
|
||||
quality: number;
|
||||
job: number;
|
||||
skinId: number;
|
||||
ePlace: HeroDetailEplaceParam[] = [];
|
||||
attributes: {
|
||||
hp: number;
|
||||
atk: number;
|
||||
def: number;
|
||||
mdef: number;
|
||||
}
|
||||
|
||||
constructor(hero: HeroType) {
|
||||
this.roleId = hero.roleId;
|
||||
this.hid = hero.hid;
|
||||
this.ce = reduceCe(hero.ce);
|
||||
this.lv = hero.lv;
|
||||
this.star = hero.star;
|
||||
this.colorStar = hero.colorStar;
|
||||
this.quality = hero.quality;
|
||||
this.job = hero.job;
|
||||
this.skinId = hero.skinId;
|
||||
for(let equip of hero.ePlace) {
|
||||
this.ePlace.push(new HeroDetailEplaceParam(equip));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
setAttributes(attributes: {hp: number, atk: number, def: number, mdef: number}) {
|
||||
this.attributes = attributes;
|
||||
}
|
||||
|
||||
setJewels(jewels: Map<number, JewelType>) {
|
||||
for(let eplaceParam of this.ePlace) {
|
||||
if(jewels.has(eplaceParam.jewelId)) {
|
||||
eplaceParam.setJewel(jewels.get(eplaceParam.jewelId));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -736,7 +736,7 @@ export function calEquipPutOnOrOffJewelIncAttr(hero: HeroType, update: HeroUpdat
|
||||
}
|
||||
|
||||
function setRandSeToSeidList(jewel: JewelType, equip: EPlace, list: number[]) {
|
||||
if(equip && equip.jewel) {
|
||||
if(equip && jewel) {
|
||||
for(let { id, seid, rand } of jewel.randSe) {
|
||||
if(isRandSeUnLock(jewel.id, id, equip.stones)) {
|
||||
list.push(seid, rand);
|
||||
|
||||
Reference in New Issue
Block a user