修改新手10连抽结果的返回
This commit is contained in:
parent
3132724f15
commit
be6a247e18
@ -24,7 +24,7 @@ export default class ActivityController extends BaseController {
|
|||||||
} else {
|
} else {
|
||||||
day = (new Date(0)).format('yyyy-MM-dd', true)
|
day = (new Date(0)).format('yyyy-MM-dd', true)
|
||||||
}
|
}
|
||||||
let record = (await ActRecord.findOrCreate({accountid, day})).doc
|
let record = (await ActRecord.findOrCreate({accountid, actid: id, day})).doc
|
||||||
if (!cfg.repeat && record.count > 0) {
|
if (!cfg.repeat && record.count > 0) {
|
||||||
throw new ZError(12, 'already goted')
|
throw new ZError(12, 'already goted')
|
||||||
}
|
}
|
||||||
@ -41,8 +41,14 @@ export default class ActivityController extends BaseController {
|
|||||||
record.lasttime = Date.now()
|
record.lasttime = Date.now()
|
||||||
await record.save()
|
await record.save()
|
||||||
const itemInfos: ItemInfo[] = ItemCtrl.getItemsByInfo(cfg.income)
|
const itemInfos: ItemInfo[] = ItemCtrl.getItemsByInfo(cfg.income)
|
||||||
await BagItem.addItems(accountid, itemInfos)
|
let results
|
||||||
|
if (id == 90001 || id == 90002) {
|
||||||
|
results = await BagItem.parseCardItems(req.user, itemInfos)
|
||||||
|
} else {
|
||||||
|
await BagItem.addItems(accountid, itemInfos)
|
||||||
|
results = itemInfos
|
||||||
|
}
|
||||||
await record.save()
|
await record.save()
|
||||||
return itemInfos
|
return results
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -161,77 +161,9 @@ export default class CardController extends BaseController {
|
|||||||
throw new ZError(105, '解锁物品数量不足')
|
throw new ZError(105, '解锁物品数量不足')
|
||||||
}
|
}
|
||||||
const items: ItemInfo[] = []
|
const items: ItemInfo[] = []
|
||||||
for (let z = 0 ; z < count; z ++) {
|
items.push(...ItemCtrl.getItemsByInfo(cfg.get))
|
||||||
items.push(ItemCtrl.getItemsByInfo(cfg.get)[0])
|
|
||||||
}
|
|
||||||
let account = req.user
|
let account = req.user
|
||||||
const cfgMap = global.$cfg.get(BaseConst.ITEMCARD)
|
const results = await BagItem.parseCardItems(account, items)
|
||||||
let results: any = []
|
|
||||||
const cardMap = account.cardMap
|
|
||||||
let itemToSave: ItemInfo[] = []
|
|
||||||
for (let item of items) {
|
|
||||||
if (item.type != ItemType.CARD) {
|
|
||||||
results.push({
|
|
||||||
id: item.id,
|
|
||||||
used: 0,
|
|
||||||
count: item.count
|
|
||||||
});
|
|
||||||
itemToSave.push(item)
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
if (item.type == ItemType.CARD &&!cfgMap.has(item.id)) {
|
|
||||||
error(`抽卡 ${item.id} 的配置不存在`)
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
const data = cfgMap.get(item.id)
|
|
||||||
if (data.unlocking >= 30000 ) { // 英雄
|
|
||||||
for (let i = 0; i < item.count; i ++) {
|
|
||||||
let result = account.unlockHero(data.unlocking, data.unlockingtimes)
|
|
||||||
if (result == 1) {
|
|
||||||
await addHeroDefaultCardGroup(accountid, data.unlocking, cardMap)
|
|
||||||
}
|
|
||||||
if (result > 0) {
|
|
||||||
results.push({
|
|
||||||
id: item.id,
|
|
||||||
used: 1,
|
|
||||||
count: 1,
|
|
||||||
heroid: data.unlocking
|
|
||||||
})
|
|
||||||
} else {
|
|
||||||
let saveItem = new ItemInfo(item.id, 1, item.weight)
|
|
||||||
saveItem.type = item.type
|
|
||||||
itemToSave.push(saveItem)
|
|
||||||
results.push({
|
|
||||||
id: item.id,
|
|
||||||
count: 1,
|
|
||||||
used: 0
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else { // 随从卡
|
|
||||||
for (let i = 0; i < item.count; i ++) {
|
|
||||||
const result = account.unlockCard(data.unlocking, data.unlockingtimes)
|
|
||||||
if (result > 0) {
|
|
||||||
results.push({
|
|
||||||
id: item.id,
|
|
||||||
used: 1,
|
|
||||||
count: 1,
|
|
||||||
cardid: data.unlocking
|
|
||||||
})
|
|
||||||
} else {
|
|
||||||
let saveItem = new ItemInfo(item.id, 1, item.weight)
|
|
||||||
saveItem.type = item.type
|
|
||||||
itemToSave.push(saveItem)
|
|
||||||
results.push({
|
|
||||||
id: item.id,
|
|
||||||
count: 1,
|
|
||||||
used: 0,
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
await BagItem.addItems(accountid, itemToSave)
|
|
||||||
await account.save()
|
await account.save()
|
||||||
record.count -= itemInfo[0].count
|
record.count -= itemInfo[0].count
|
||||||
await record.save()
|
await record.save()
|
||||||
|
@ -19,7 +19,7 @@ interface ActRecordClass extends Base<string>, TimeStamps {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@dbconn()
|
@dbconn()
|
||||||
@index({ 'accountid': 1 , actid: 1, 'day': 1}, { unique: true })
|
@index({ 'accountid': 1 , 'actid': 1, 'day': 1}, { unique: true })
|
||||||
@plugin(findOrCreate)
|
@plugin(findOrCreate)
|
||||||
@modelOptions({
|
@modelOptions({
|
||||||
schemaOptions:
|
schemaOptions:
|
||||||
|
@ -18,6 +18,8 @@ import { BaseConst } from '../constants/BaseConst'
|
|||||||
import { DropItemCfg } from '../cfg/parsers/DropItemCfg'
|
import { DropItemCfg } from '../cfg/parsers/DropItemCfg'
|
||||||
import { ItemCardCfg } from '../cfg/parsers/ItemCardCfg'
|
import { ItemCardCfg } from '../cfg/parsers/ItemCardCfg'
|
||||||
import { ItemInfo } from '../logic/ItemDef'
|
import { ItemInfo } from '../logic/ItemDef'
|
||||||
|
import { error } from '../common/Debug'
|
||||||
|
import { addHeroDefaultCardGroup } from '../dao/CardGroupDao'
|
||||||
|
|
||||||
export enum ItemType {
|
export enum ItemType {
|
||||||
UNKNOW = 0, // 未知
|
UNKNOW = 0, // 未知
|
||||||
@ -94,6 +96,84 @@ class BagItemClass extends FindOrCreate {
|
|||||||
type: this.itemtype
|
type: this.itemtype
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 处理10连抽的物品列表
|
||||||
|
* @param account
|
||||||
|
* @param {ItemInfo[]} items
|
||||||
|
* @return {Promise<any>}
|
||||||
|
*/
|
||||||
|
public static async parseCardItems(account: any, items: ItemInfo[]) {
|
||||||
|
const cardMap = account.cardMap
|
||||||
|
const cfgMap = global.$cfg.get(BaseConst.ITEMCARD)
|
||||||
|
let itemToSave: ItemInfo[] = []
|
||||||
|
const accountid = account._id
|
||||||
|
let results: any = []
|
||||||
|
for (let item of items) {
|
||||||
|
if (item.type != ItemType.CARD) {
|
||||||
|
results.push({
|
||||||
|
id: item.id,
|
||||||
|
used: 0,
|
||||||
|
count: item.count
|
||||||
|
});
|
||||||
|
itemToSave.push(item)
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
if (item.type == ItemType.CARD &&!cfgMap.has(item.id)) {
|
||||||
|
error(`抽卡 ${item.id} 的配置不存在`)
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
const data = cfgMap.get(item.id)
|
||||||
|
if (data.unlocking >= 30000 ) { // 英雄
|
||||||
|
for (let i = 0; i < item.count; i ++) {
|
||||||
|
let result = account.unlockHero(data.unlocking, data.unlockingtimes)
|
||||||
|
if (result == 1) {
|
||||||
|
await addHeroDefaultCardGroup(accountid, data.unlocking, cardMap)
|
||||||
|
}
|
||||||
|
if (result > 0) {
|
||||||
|
results.push({
|
||||||
|
id: item.id,
|
||||||
|
used: 1,
|
||||||
|
count: 1,
|
||||||
|
heroid: data.unlocking
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
let saveItem = new ItemInfo(item.id, 1, item.weight)
|
||||||
|
saveItem.type = item.type
|
||||||
|
itemToSave.push(saveItem)
|
||||||
|
results.push({
|
||||||
|
id: item.id,
|
||||||
|
count: 1,
|
||||||
|
used: 0
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else { // 随从卡
|
||||||
|
for (let i = 0; i < item.count; i ++) {
|
||||||
|
const result = account.unlockCard(data.unlocking, data.unlockingtimes)
|
||||||
|
if (result > 0) {
|
||||||
|
results.push({
|
||||||
|
id: item.id,
|
||||||
|
used: 1,
|
||||||
|
count: 1,
|
||||||
|
cardid: data.unlocking
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
let saveItem = new ItemInfo(item.id, 1, item.weight)
|
||||||
|
saveItem.type = item.type
|
||||||
|
itemToSave.push(saveItem)
|
||||||
|
results.push({
|
||||||
|
id: item.id,
|
||||||
|
count: 1,
|
||||||
|
used: 0,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
await BagItem.addItems(accountid, itemToSave)
|
||||||
|
return results
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export const BagItem = getModelForClass(BagItemClass,
|
export const BagItem = getModelForClass(BagItemClass,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user