diff --git a/docs/api.md b/docs/api.md index 92a8dfc..228342c 100644 --- a/docs/api.md +++ b/docs/api.md @@ -450,6 +450,34 @@ } ``` +### 17. 分解卡片 +1. Method: POST +2. URI: /api/:accountid/card/destory + +| 字段 | 说明 | +| -------- | -------------------------------------- | +| accountid | 帐号id | + +> POST参数 + + +| 字段 | 说明 | +| -------- | -------------------------------------- | +| cardid |卡牌id | +| count |使用数量 | + +3. Response: JSON + +```js +[ //物品列表 + { + "itemid": 0, //道具id + "itemnum": 0, //道具数量 + }, +] + +``` + @@ -473,6 +501,4 @@ -``` -``` diff --git a/src/controllers/AccountController.ts b/src/controllers/AccountController.ts index 8cfa547..5817301 100644 --- a/src/controllers/AccountController.ts +++ b/src/controllers/AccountController.ts @@ -40,16 +40,17 @@ export default class AccountController extends BaseController { let cards: Card[] = [] for (let i = 1; i <= 4; i++) { const cardid = cfg[`follower${ i }id`] - let 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) - if (!cardMap.has(cardid + '')) { + 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) } } diff --git a/src/controllers/CardController.ts b/src/controllers/CardController.ts index ef1092c..5458a22 100644 --- a/src/controllers/CardController.ts +++ b/src/controllers/CardController.ts @@ -165,4 +165,11 @@ export default class CardController extends BaseController { await account.save() return results } + + @router('post /api/:accountid/card/destory') + async destoryCard(req: any) { + let { cardid, count, accountid } = req.params + + return {} + } } diff --git a/src/controllers/HeroController.ts b/src/controllers/HeroController.ts index 33f6484..88b890d 100644 --- a/src/controllers/HeroController.ts +++ b/src/controllers/HeroController.ts @@ -34,7 +34,7 @@ export default class HeroController extends BaseController { hero = await account.unlockHero(heroid, userMoney) // 将该英雄的默认卡组添加到玩家的卡组中, // 将默认卡组里的卡添加到玩家可用卡牌中 - let cardSet = new Set(account.cards) + let cardMap = account.cardMap let cfg = global.$cfg.get(BaseConst.HERO).get(parseInt(hero.heroid)) let cardgroup = new CardGroup({}) let cards: Card[] = [] @@ -42,15 +42,21 @@ export default class HeroController extends BaseController { if (!cfg[`follower${ i }id`]) { break } - let card = new Card() - card.cardid = cfg[`follower${ i }id`] - card.owned = false - card.ban = false - card.usetype = 0 - card.free = true - card.free_expire = 0 + 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) + } + cards.push(card) - cardSet.add(card.cardid) } cardgroup.accountid = account.id cardgroup.heroid = hero.heroid @@ -58,7 +64,6 @@ export default class HeroController extends BaseController { cardgroup.isdefault = true cardgroup.cards = cards await cardgroup.save() - account.cards = [...cardSet] await account.save() } else { hero = await account.tryHero(heroid)