init
This commit is contained in:
@@ -0,0 +1,42 @@
|
|||||||
|
import { Application, BackendSession } from "pinus";
|
||||||
|
import { resResult } from "../../../pubUtils/util";
|
||||||
|
import { STATUS } from "../../../consts";
|
||||||
|
import { addItems } from "../../../services/rewardService";
|
||||||
|
|
||||||
|
export default function(app: Application) {
|
||||||
|
return new EquipHandler(app);
|
||||||
|
}
|
||||||
|
|
||||||
|
export class EquipHandler {
|
||||||
|
|
||||||
|
constructor(private app: Application) {
|
||||||
|
}
|
||||||
|
|
||||||
|
// TODO 合成装备
|
||||||
|
public async composeEquip(msg: { gid: number, originalEquip: number[]}, session: BackendSession) {
|
||||||
|
// 消耗材料
|
||||||
|
// 获得装备
|
||||||
|
|
||||||
|
// 1. 获得部位
|
||||||
|
}
|
||||||
|
|
||||||
|
// TODO 装备栏强化
|
||||||
|
public async strengthen(msg: { }, session: BackendSession) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// TODO 装备栏精炼
|
||||||
|
public async refine(msg: { }, session: BackendSession) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// TODO 装备洗炼锁定
|
||||||
|
public async lockRandSe(msg: { }, session: BackendSession) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// TODO 装备洗炼
|
||||||
|
public async reStrengthen(msg: { }, session: BackendSession) {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
+21
-14
@@ -3,17 +3,24 @@ import { index, getModelForClass, prop, DocumentType, modelOptions } from '@type
|
|||||||
|
|
||||||
class RandSe {
|
class RandSe {
|
||||||
@prop({ required: true })
|
@prop({ required: true })
|
||||||
seType: number; // 属性类型
|
id: number; // 随机属性位置id
|
||||||
@prop({ required: true })
|
@prop({ required: true })
|
||||||
value: number; // 属性数值
|
seid: number; // 随机属性池id
|
||||||
|
@prop({ required: true })
|
||||||
|
rand: number; // 随机属性内需要随机的值
|
||||||
|
@prop({ required: true })
|
||||||
|
locked: boolean; // 洗炼是否锁定
|
||||||
}
|
}
|
||||||
|
|
||||||
class Holes {
|
class Holes {
|
||||||
@prop({ required: true })
|
@prop({ required: true })
|
||||||
id: number; // 宝石 id,待定,也可能是 type + lv
|
id: number; // 孔的id
|
||||||
@prop({ required: true })
|
@prop({ required: true })
|
||||||
lv: number; // 宝石等级
|
isOpen: boolean; // 是否开孔
|
||||||
|
@prop({ required: true })
|
||||||
|
jewel: number; // 装备的宝石id
|
||||||
}
|
}
|
||||||
|
|
||||||
@index({ roleId: 1, hid: 1, id: 1 })
|
@index({ roleId: 1, hid: 1, id: 1 })
|
||||||
@index({ seqId: 1 })
|
@index({ seqId: 1 })
|
||||||
@modelOptions({schemaOptions: {id: false}})
|
@modelOptions({schemaOptions: {id: false}})
|
||||||
@@ -23,14 +30,12 @@ export default class Equip extends BaseModel {
|
|||||||
@prop({ required: true })
|
@prop({ required: true })
|
||||||
roleName: string; // 角色名称
|
roleName: string; // 角色名称
|
||||||
|
|
||||||
|
@prop({ required: true })
|
||||||
|
seqId: number; // 装备表自增 id
|
||||||
@prop({ required: true })
|
@prop({ required: true })
|
||||||
id: number; // 装备 id
|
id: number; // 装备 id
|
||||||
@prop({ required: true })
|
@prop({ required: true })
|
||||||
type: number; // 装备类型
|
|
||||||
@prop({ required: true })
|
|
||||||
name: string; // 装备名称
|
name: string; // 装备名称
|
||||||
@prop({ required: true })
|
|
||||||
seqId: number; // 装备表自增 id
|
|
||||||
@prop({ required: false })
|
@prop({ required: false })
|
||||||
hid: number; // 装备此装备的武将 id
|
hid: number; // 装备此装备的武将 id
|
||||||
@prop({ required: false, default: 1 })
|
@prop({ required: false, default: 1 })
|
||||||
@@ -38,15 +43,17 @@ export default class Equip extends BaseModel {
|
|||||||
|
|
||||||
@prop({ required: true, default: 1 })
|
@prop({ required: true, default: 1 })
|
||||||
quality: number; // 品质
|
quality: number; // 品质
|
||||||
|
@prop({ required: true, default: 0 })
|
||||||
|
type: number; // 装备类型
|
||||||
@prop({ required: true, default: 1 })
|
@prop({ required: true, default: 1 })
|
||||||
lv: number; // 强化等级
|
wearLv: number; // 穿戴等级
|
||||||
@prop({ required: false, type: RandSe, default: [] })
|
@prop({ required: true, default: 0 })
|
||||||
randSe: RandSe[]; // 强化随机属性
|
suitId: number; // 套装id
|
||||||
|
|
||||||
@prop({ required: true, default: 0 })
|
@prop({ required: true, default: 0 })
|
||||||
randRange: number; // 物攻策攻数值浮动上下限变化率,浮点数
|
randRange: number; // 固定属性随机值
|
||||||
@prop({ required: true, default: 0 })
|
@prop({ required: false, type: RandSe, default: [] })
|
||||||
initHoleCnt: number; // 初始珠宝孔位个数
|
randSe: RandSe[]; // 强化随机属性
|
||||||
@prop({ required: true, type: Holes, default: [] })
|
@prop({ required: true, type: Holes, default: [] })
|
||||||
holes: Holes[];
|
holes: Holes[];
|
||||||
|
|
||||||
|
|||||||
+16
-3
@@ -22,6 +22,19 @@ class Skin {
|
|||||||
enable: boolean;
|
enable: boolean;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class EPlace {
|
||||||
|
@prop({ required: true })
|
||||||
|
id: number;
|
||||||
|
@prop({ ref: Equip, type: mongoose.Schema.Types.ObjectId })
|
||||||
|
equip: Ref<Equip>;
|
||||||
|
@prop({ required: true })
|
||||||
|
lv: number;
|
||||||
|
@prop({ required: true })
|
||||||
|
refineLv: number;
|
||||||
|
@prop({ required: true })
|
||||||
|
refineCount: number;
|
||||||
|
}
|
||||||
|
|
||||||
interface heroUpdate {
|
interface heroUpdate {
|
||||||
exp?: number;
|
exp?: number;
|
||||||
lv?: number;
|
lv?: number;
|
||||||
@@ -95,8 +108,8 @@ export default class Hero extends BaseModel {
|
|||||||
@prop({ required: true, type: Skin, default: [] })
|
@prop({ required: true, type: Skin, default: [] })
|
||||||
skins: Skin[]; // 皮肤
|
skins: Skin[]; // 皮肤
|
||||||
|
|
||||||
@prop({ ref: Equip, type: mongoose.Schema.Types.ObjectId })
|
@prop({ required: true, type: EPlace, default:[] })
|
||||||
equips: Ref<Equip>[]; // 武将装备引用数组
|
ePlact: EPlace[]; // 武将装备引用数组
|
||||||
|
|
||||||
public static async findByRole(roleId: string, lean = true) {
|
public static async findByRole(roleId: string, lean = true) {
|
||||||
const heros: HeroType[] = await HeroModel.find({ roleId }).populate('equips').lean(lean);
|
const heros: HeroType[] = await HeroModel.find({ roleId }).populate('equips').lean(lean);
|
||||||
@@ -129,7 +142,7 @@ export default class Hero extends BaseModel {
|
|||||||
const seqId = await CounterModel.getNewCounter(COUNTER.HID)||-1;
|
const seqId = await CounterModel.getNewCounter(COUNTER.HID)||-1;
|
||||||
const update = Object.assign(doc.toJSON(), heroInfo, {seqId});
|
const update = Object.assign(doc.toJSON(), heroInfo, {seqId});
|
||||||
delete update._id;
|
delete update._id;
|
||||||
const hero: HeroType = await HeroModel.findOneAndUpdate({roleId: heroInfo.roleId, hid: heroInfo.hid}, update, {upsert: true, new: true}).select('hid hName lv exp star starStage colorStar colorStarStage quality job jobStage conections favour favourLv skins equips ce ceAttr').lean(lean);
|
const hero: HeroType = await HeroModel.findOneAndUpdate({roleId: heroInfo.roleId, hid: heroInfo.hid}, update, {upsert: true, new: true}).select('seqId hid hName lv exp star starStage colorStar colorStarStage quality job jobStage conections favour favourLv skins equips ce ceAttr').lean(lean);
|
||||||
return hero;
|
return hero;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user