镇念塔:系统参数表
This commit is contained in:
@@ -1,11 +1,11 @@
|
||||
import { HANG_UP_CONSTS, ROLE_TERAPH, ROLE_SELECT, ABI_TYPE } from './../consts';
|
||||
import { ROLE_TERAPH, ROLE_SELECT, ABI_TYPE } from './../consts';
|
||||
import BaseModel from './BaseModel';
|
||||
import { index, getModelForClass, prop, DocumentType, Ref, mongoose } from '@typegoose/typegoose';
|
||||
import User from './User';
|
||||
import { shouldRefresh, reduceCe } from '../pubUtils/util';
|
||||
import { nowSeconds, getTimeFunD } from '../pubUtils/timeUtil';
|
||||
import { Figure } from '../domain/dbGeneral';
|
||||
import { BAG, EXTERIOR } from '../pubUtils/dicParam';
|
||||
import * as dicParam from '../pubUtils/dicParam';
|
||||
import Hero from './Hero';
|
||||
|
||||
// role表属性格式
|
||||
@@ -135,17 +135,17 @@ export default class Role extends BaseModel {
|
||||
|
||||
public get head() { // 虚拟字段head 当前头像
|
||||
let curHead = this.heads?.find(cur => cur.enable && (!cur.time || cur.time > nowSeconds()));
|
||||
return curHead ? curHead.id : EXTERIOR.EXTERIOR_FACE;
|
||||
return curHead ? curHead.id : dicParam.EXTERIOR.EXTERIOR_FACE;
|
||||
}
|
||||
|
||||
public get frame() { // 虚拟字段frame 当前相框
|
||||
let curFrame = this.frames?.find(cur => cur.enable && (!cur.time || cur.time > nowSeconds()));
|
||||
return curFrame ? curFrame.id : EXTERIOR.EXTERIOR_FACECASE;
|
||||
return curFrame ? curFrame.id : dicParam.EXTERIOR.EXTERIOR_FACECASE;
|
||||
}
|
||||
|
||||
public get spine() { // 虚拟字段spine 当前形象
|
||||
let curSpine = this.spines?.find(cur => cur.enable && (!cur.time || cur.time > nowSeconds()));
|
||||
return curSpine ? curSpine.id : EXTERIOR.EXTERIOR_APPEARANCE;
|
||||
return curSpine ? curSpine.id : dicParam.EXTERIOR.EXTERIOR_APPEARANCE;
|
||||
}
|
||||
|
||||
@prop({ required: true, default: 0 })
|
||||
@@ -210,7 +210,7 @@ export default class Role extends BaseModel {
|
||||
@prop({ required: true, default: new Date() })
|
||||
towerUpTime: Date; // 天梯爬到这一层的时间
|
||||
|
||||
@prop({ required: true, default: HANG_UP_CONSTS.MAX_SPD_UP_CNT })
|
||||
@prop({ required: true, default: 0 })
|
||||
hangUpSpdUpCnt: number; // 挂机加速次数
|
||||
@prop({ required: true, default: new Date() })
|
||||
lastSpdUpTime: Date; // 最后一次挂机加速时间
|
||||
@@ -355,20 +355,6 @@ export default class Role extends BaseModel {
|
||||
return role;
|
||||
}
|
||||
|
||||
public static async hangUpSpdUp(roleId: string, cnt: number, curTime: Date, lean = true) {
|
||||
if (cnt < 0) return null;
|
||||
|
||||
const result = await RoleModel.findOne({ roleId }).lean(lean);
|
||||
const lastSpdUpTime = result?.lastSpdUpTime;
|
||||
let role: RoleType;
|
||||
if (!lastSpdUpTime || (shouldRefresh(lastSpdUpTime, curTime) && cnt <= HANG_UP_CONSTS.MAX_SPD_UP_CNT)) {
|
||||
role = await RoleModel.findOneAndUpdate({ roleId }, { hangUpSpdUpCnt: HANG_UP_CONSTS.MAX_SPD_UP_CNT - cnt, lastSpdUpTime: curTime }, { new: true }).lean(lean);
|
||||
} else {
|
||||
role = await RoleModel.findOneAndUpdate({ roleId, hangUpSpdUpCnt: { $gte: cnt } }, { $inc: { hangUpSpdUpCnt: -cnt }, lastSpdUpTime: curTime }, { new: true }).lean(lean);
|
||||
}
|
||||
return role;
|
||||
}
|
||||
|
||||
public static async increaseExpeditionPoint(roleId: string, point: number, lean = true) {
|
||||
let role: RoleType = await RoleModel.findOneAndUpdate({ roleId }, { $inc: { expeditionPoint: point } }, { new: true }).lean(lean);
|
||||
return role;
|
||||
@@ -415,11 +401,11 @@ export default class Role extends BaseModel {
|
||||
}
|
||||
}
|
||||
let result: RoleType = await RoleModel.findOneAndUpdate({ roleId }, { $inc: { gold: addGold, paidGold, giftGold, coin } }, { new: true }).lean();
|
||||
if(result.gold > BAG.BAG_GOODS_UPLIMITED) {
|
||||
result = await RoleModel.findOneAndUpdate({ roleId, gold: { $gte: BAG.BAG_GOODS_UPLIMITED } }, { $set: { gold: BAG.BAG_GOODS_UPLIMITED } }, { new: true }).lean();
|
||||
if(result.gold > dicParam.BAG.BAG_GOODS_UPLIMITED) {
|
||||
result = await RoleModel.findOneAndUpdate({ roleId, gold: { $gte: dicParam.BAG.BAG_GOODS_UPLIMITED } }, { $set: { gold: dicParam.BAG.BAG_GOODS_UPLIMITED } }, { new: true }).lean();
|
||||
}
|
||||
if(result.coin > BAG.BAG_GOODS_UPLIMITED) {
|
||||
result = await RoleModel.findOneAndUpdate({ roleId, coin: { $gte: BAG.BAG_GOODS_UPLIMITED } }, { $set: { coin: BAG.BAG_GOODS_UPLIMITED } }, { new: true }).lean();
|
||||
if(result.coin > dicParam.BAG.BAG_GOODS_UPLIMITED) {
|
||||
result = await RoleModel.findOneAndUpdate({ roleId, coin: { $gte: dicParam.BAG.BAG_GOODS_UPLIMITED } }, { $set: { coin: dicParam.BAG.BAG_GOODS_UPLIMITED } }, { new: true }).lean();
|
||||
}
|
||||
return result;
|
||||
}
|
||||
@@ -435,11 +421,11 @@ export default class Role extends BaseModel {
|
||||
}
|
||||
}
|
||||
let result: RoleType = await RoleModel.findOneAndUpdate({ roleId }, { $inc: { gold: -1 * addGold, paidGold: -1 * paidGold, giftGold: -1 * giftGold, totalCost: addGold, coin: -1 * coin } }, { new: true }).lean();
|
||||
if(result.gold > BAG.BAG_GOODS_UPLIMITED) {
|
||||
result = await RoleModel.findOneAndUpdate({ roleId, gold: { $gte: BAG.BAG_GOODS_UPLIMITED } }, { $set: { gold: BAG.BAG_GOODS_UPLIMITED } }, { new: true }).lean();
|
||||
if(result.gold > dicParam.BAG.BAG_GOODS_UPLIMITED) {
|
||||
result = await RoleModel.findOneAndUpdate({ roleId, gold: { $gte: dicParam.BAG.BAG_GOODS_UPLIMITED } }, { $set: { gold: dicParam.BAG.BAG_GOODS_UPLIMITED } }, { new: true }).lean();
|
||||
}
|
||||
if(result.coin > BAG.BAG_GOODS_UPLIMITED) {
|
||||
result = await RoleModel.findOneAndUpdate({ roleId, coin: { $gte: BAG.BAG_GOODS_UPLIMITED } }, { $set: { coin: BAG.BAG_GOODS_UPLIMITED } }, { new: true }).lean();
|
||||
if(result.coin > dicParam.BAG.BAG_GOODS_UPLIMITED) {
|
||||
result = await RoleModel.findOneAndUpdate({ roleId, coin: { $gte: dicParam.BAG.BAG_GOODS_UPLIMITED } }, { $set: { coin: dicParam.BAG.BAG_GOODS_UPLIMITED } }, { new: true }).lean();
|
||||
}
|
||||
return result;
|
||||
}
|
||||
@@ -458,6 +444,22 @@ export default class Role extends BaseModel {
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
public static async hangUpSpdUp(roleId: string, cnt: number, curTime: Date) {
|
||||
if (cnt < 0) return null;
|
||||
|
||||
const result = await RoleModel.findOne({ roleId }).lean();
|
||||
const lastSpdUpTime = result?.lastSpdUpTime;
|
||||
let role: RoleType;
|
||||
if(shouldRefresh(lastSpdUpTime, curTime)) {
|
||||
role = await RoleModel.findOneAndUpdate({ roleId }, { hangUpSpdUpCnt: 0, lastSpdUpTime: curTime }, { new: true }).lean();
|
||||
} else {
|
||||
role = await RoleModel.findOneAndUpdate({ roleId, hangUpSpdUpCnt: { $lte: dicParam.TOWER_BOOST.TOWER_BOOSTTIME - cnt } }, { $inc: { hangUpSpdUpCnt: cnt }, lastSpdUpTime: curTime }, { new: true }).lean();
|
||||
}
|
||||
return role;
|
||||
}
|
||||
|
||||
|
||||
// 重置派遣次数
|
||||
public static async resetTowerCnt(roleId: string, curTime: Date, lean = true) {
|
||||
const role: RoleType = await RoleModel.findOneAndUpdate({ roleId }, { towerTaskCnt: 0, towerTaskRefTime: curTime, towerTaskReCnt: 0 }, { new: true }).lean(lean);
|
||||
@@ -713,13 +715,13 @@ function getInitialTeraph() {
|
||||
function getDefualtFigure(type: string) {
|
||||
let figures = new Array<Figure>();
|
||||
if (type == 'head') {
|
||||
let figure = new Figure(EXTERIOR.EXTERIOR_FACE, true, null, true);
|
||||
let figure = new Figure(dicParam.EXTERIOR.EXTERIOR_FACE, true, null, true);
|
||||
figures.push(figure);
|
||||
} else if (type == 'frame') {
|
||||
let figure = new Figure(EXTERIOR.EXTERIOR_FACECASE, true, null, true);
|
||||
let figure = new Figure(dicParam.EXTERIOR.EXTERIOR_FACECASE, true, null, true);
|
||||
figures.push(figure);
|
||||
} else if (type == 'spine') {
|
||||
let figure = new Figure(EXTERIOR.EXTERIOR_APPEARANCE, true, null, true);
|
||||
let figure = new Figure(dicParam.EXTERIOR.EXTERIOR_APPEARANCE, true, null, true);
|
||||
figures.push(figure);
|
||||
}
|
||||
return figures;
|
||||
|
||||
Reference in New Issue
Block a user