This commit is contained in:
yuexin 2021-01-22 16:23:37 +08:00
commit f95b585071
4 changed files with 43 additions and 27 deletions

View File

@ -8,12 +8,14 @@ import { ItemCardCfg } from '../cfg/parsers/ItemCardCfg'
import { MatchCfg } from '../cfg/parsers/MatchCfg'
import { ItemFuncCfg } from '../cfg/parsers/ItemFuncCfg'
import ItemCtrl from "../logic/ItemCtrl";
import { EffectCardCfg } from '../cfg/parsers/EffectCardCfg'
export function initData() {
const rP = DataParser.regCommonParser.bind(DataParser);
rP(BaseConst.HERO, HeroCfg);
rP(BaseConst.UNIT, UnitCfg);
rP(BaseConst.EFFECTCARD, EffectCardCfg);
rP(BaseConst.FORMULA, FormulaCfg);
rP(BaseConst.DROPITEM, DropItemCfg);
rP(BaseConst.ITEMCARD, ItemCardCfg);

View File

@ -23,6 +23,19 @@ export default class AccountController extends BaseController {
account.season_score = formulaCfg.get(70003).number
}
let cardMap = account.cardMap
for (let [, cfg] of global.$cfg.get(BaseConst.EFFECTCARD)) {
if (cfg.org_gift == 1 && !cardMap.has(cfg.id + '')) {
const card = new Card()
card.cardid = cfg.id
card.owned = true
card.ban = false
card.usetype = 0
card.free = true
card.free_expire = 0
card.time = Date.now()
cardMap.set(card.cardid + '', card)
}
}
for (let [, cfg] of global.$cfg.get(BaseConst.HERO)) {
if (cfg.org_gift == 1) {
let hero = new Hero()
@ -39,19 +52,16 @@ export default class AccountController extends BaseController {
let cards: Card[] = []
for (let i = 1; i <= 4; i++) {
const cardid = cfg[`follower${ i }id`]
let card = cardMap.get(cardid + '')
if (!card) {
card = new Card()
const owned = cardMap.has(cardid)
const card = new Card()
card.cardid = cardid
card.owned = true
card.owned = owned
card.ban = false
card.usetype = 0
card.free = true
card.free = !owned
card.free_expire = 0
card.time = Date.now()
cards.push(card)
cardMap.set(cardid + '', card)
}
}
cardgroup.accountid = account.id
cardgroup.heroid = cfg.id

View File

@ -68,10 +68,18 @@ export default class CardController extends BaseController {
throw new ZError(103, '卡组已被删除')
}
if (!record) {
let count = await CardGroup.count({accountid, isdefault: false, deleted: false})
let account = req.user
if (count >= account.slot) {
throw new ZError(105, '英雄可使用的卡槽数量不足')
}
record = new CardGroup()
record.accountid = accountid
record.isdefault = false
}
if (record.isdefault) {
throw new ZError(104, '默认卡组不能修改')
}
if (selected) {
await CardGroup.updateMany({
accountid,

View File

@ -43,19 +43,15 @@ export default class HeroController extends BaseController {
break
}
const cardid = cfg[`follower${ i }id`]
let card = cardMap.get(cardid + '')
if (!card) {
card = new Card()
const owned = cardMap.has(cardid)
const card = new Card()
card.cardid = cardid
card.owned = false
card.owned = owned
card.ban = false
card.usetype = 0
card.free = true
card.time = Date.now()
card.free = !owned
card.free_expire = 0
cardMap.set(card.cardid + '', card)
}
card.time = Date.now()
cards.push(card)
}
cardgroup.accountid = account.id
@ -118,7 +114,7 @@ export default class HeroController extends BaseController {
let needItem = cfg[`Unlockgroup${needSlot}id`]
// @ts-ignore
let needCount = cfg[`Unlockgroup${needSlot}num`]
let item = await BagItem.findOne({accountid, itemid: needItem, itemtype: ItemType.UNKNOW})
let item = await BagItem.findOne({accountid, itemid: needItem})
if (!item || item.count < needCount) {
throw new ZError(13, 'not enough unlock item')
}