物品:获取装备上限
This commit is contained in:
+50
-2
@@ -6,7 +6,7 @@ import { shouldRefresh, reduceCe } from '../pubUtils/util';
|
||||
import { initRoleAtrr } from '../pubUtils/playerCe';
|
||||
import { nowSeconds, getTimeFunD } from '../pubUtils/timeUtil';
|
||||
import { Figure } from '../domain/dbGeneral';
|
||||
import { EXTERIOR } from '../pubUtils/dicParam';
|
||||
import { BAG, EXTERIOR } from '../pubUtils/dicParam';
|
||||
import Hero from './Hero';
|
||||
|
||||
// role表属性格式
|
||||
@@ -28,7 +28,7 @@ class TopHero {
|
||||
hid: number; // 武将id
|
||||
@prop({ required: true })
|
||||
ce: number; // 战力
|
||||
@prop({ ref: Hero, type: mongoose.Schema.Types.ObjectId })
|
||||
@prop({ ref: 'Hero', type: mongoose.Schema.Types.ObjectId })
|
||||
hero: Ref<Hero>;
|
||||
}
|
||||
|
||||
@@ -181,6 +181,8 @@ export default class Role extends BaseModel {
|
||||
totalCost: number; // 金币总花费
|
||||
@prop({ required: true, default: [] })
|
||||
payRecord: PayRecord[]; // 支付记录
|
||||
@prop({ required: true, default: 0 })
|
||||
equipCount: number; // 装备数量
|
||||
|
||||
@prop({ required: true, default: 0 })
|
||||
coin: number; // 总铜钱
|
||||
@@ -403,6 +405,46 @@ export default class Role extends BaseModel {
|
||||
return result;
|
||||
}
|
||||
|
||||
public static async increaseGoldAndCoin(roleId: string, gold: {count: number, isPay: boolean}[], coin: number) {
|
||||
let paidGold = 0, giftGold = 0, addGold = 0;
|
||||
for(let { count, isPay } of gold) {
|
||||
addGold += count;
|
||||
if(isPay) {
|
||||
paidGold += count;
|
||||
} else {
|
||||
giftGold += count;
|
||||
}
|
||||
}
|
||||
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.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();
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
public static async decreaseGoldAndCoin(roleId: string, gold: {count: number, isPay: boolean}[], coin: number) {
|
||||
let paidGold = 0, giftGold = 0, addGold = 0;
|
||||
for(let { count, isPay } of gold) {
|
||||
addGold += count;
|
||||
if(isPay) {
|
||||
paidGold += count;
|
||||
} else {
|
||||
giftGold += count;
|
||||
}
|
||||
}
|
||||
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.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();
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
public static async pushWarStar(roleId: string, battleId: number, warType: number, star: number, lean = true) {
|
||||
let result: RoleType = await RoleModel.findOneAndUpdate({ roleId }, { $addToSet: { warStar: { id: battleId, warType, star } } }, { "new": true, "upsert": true }).lean(lean);
|
||||
return result;
|
||||
@@ -645,6 +687,12 @@ export default class Role extends BaseModel {
|
||||
const role: RoleType = await RoleModel.findOneAndUpdate({ roleId }, { $push: { rankReceived: { $each: ids } } }, { new: true }).lean();
|
||||
return role;
|
||||
}
|
||||
|
||||
// 装备上限
|
||||
public static async increaseEquip(roleId: string, count: number) {
|
||||
const role: RoleType = await RoleModel.findOneAndUpdate({ roleId }, { $inc: { equipCount: count } }, { new: true }).lean();
|
||||
return role;
|
||||
}
|
||||
}
|
||||
|
||||
export const RoleModel = getModelForClass(Role);
|
||||
|
||||
Reference in New Issue
Block a user