From 92b597684bc1250ad267605322eaac771318fd34 Mon Sep 17 00:00:00 2001 From: zhl Date: Fri, 22 Jan 2021 15:13:21 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=88=9D=E5=A7=8B?= =?UTF-8?q?=E5=8C=96=E5=B8=90=E5=8F=B7=E6=97=B6,=20=E5=85=8D=E8=B4=B9?= =?UTF-8?q?=E5=8D=A1=E5=92=8C=E5=85=8D=E8=B4=B9=E8=8B=B1=E9=9B=84=E7=9A=84?= =?UTF-8?q?=E5=A4=84=E7=90=86=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/common/GConfig.ts | 2 ++ src/controllers/AccountController.ts | 36 ++++++++++++++++++---------- src/controllers/HeroController.ts | 22 +++++++---------- 3 files changed, 34 insertions(+), 26 deletions(-) diff --git a/src/common/GConfig.ts b/src/common/GConfig.ts index d9d2998..d72944a 100644 --- a/src/common/GConfig.ts +++ b/src/common/GConfig.ts @@ -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); diff --git a/src/controllers/AccountController.ts b/src/controllers/AccountController.ts index 6959489..b866cfd 100644 --- a/src/controllers/AccountController.ts +++ b/src/controllers/AccountController.ts @@ -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() - card.cardid = cardid - card.owned = true - card.ban = false - card.usetype = 0 - card.free = true - card.free_expire = 0 - card.time = Date.now() - cards.push(card) - cardMap.set(cardid + '', card) - } + const owned = cardMap.has(cardid) + const card = new Card() + card.cardid = cardid + card.owned = owned + card.ban = false + card.usetype = 0 + card.free = !owned + card.free_expire = 0 + card.time = Date.now() + cards.push(card) } cardgroup.accountid = account.id cardgroup.heroid = cfg.id diff --git a/src/controllers/HeroController.ts b/src/controllers/HeroController.ts index 88b890d..38bd5dd 100644 --- a/src/controllers/HeroController.ts +++ b/src/controllers/HeroController.ts @@ -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() - card.cardid = cardid - card.owned = false - card.ban = false - card.usetype = 0 - card.free = true - card.time = Date.now() - card.free_expire = 0 - cardMap.set(card.cardid + '', card) - } - + const owned = cardMap.has(cardid) + const card = new Card() + card.cardid = cardid + card.owned = owned + card.ban = false + card.usetype = 0 + card.free = !owned + card.free_expire = 0 + card.time = Date.now() cards.push(card) } cardgroup.accountid = account.id From c656acb8fb8c4daaaeb15cd5af481c2f1811c310 Mon Sep 17 00:00:00 2001 From: zhl Date: Fri, 22 Jan 2021 15:18:39 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BF=9D=E5=AD=98?= =?UTF-8?q?=E5=8D=A1=E7=BB=84=E9=80=BB=E8=BE=91,=20=E9=BB=98=E8=AE=A4?= =?UTF-8?q?=E5=8D=A1=E7=BB=84=E4=B8=8D=E8=83=BD=E4=BF=AE=E6=94=B9,=20?= =?UTF-8?q?=E4=B8=8D=E5=8D=A0slot=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/controllers/CardController.ts | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/controllers/CardController.ts b/src/controllers/CardController.ts index 0399a06..ee54078 100644 --- a/src/controllers/CardController.ts +++ b/src/controllers/CardController.ts @@ -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, From ca32325abb6e590c4d21a6df3534cd475964e193 Mon Sep 17 00:00:00 2001 From: zhl Date: Fri, 22 Jan 2021 15:41:30 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E8=A7=A3=E9=94=81?= =?UTF-8?q?=E8=8B=B1=E9=9B=84=E5=8D=A1=E6=A7=BD=E6=98=BE=E7=A4=BA=E7=89=A9?= =?UTF-8?q?=E5=93=81=E4=B8=8D=E5=A4=9F=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/controllers/HeroController.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/controllers/HeroController.ts b/src/controllers/HeroController.ts index 38bd5dd..1868f12 100644 --- a/src/controllers/HeroController.ts +++ b/src/controllers/HeroController.ts @@ -114,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') }