修改开宝箱逻辑, 测试服不判断是否助力满

This commit is contained in:
CounterFire2023 2024-04-24 16:56:18 +08:00
parent c63403a482
commit c45c4c5bf4
3 changed files with 19 additions and 16 deletions

View File

@ -2,11 +2,11 @@
{ {
"type": 1, "type": 1,
"name": "White List", "name": "White List",
"probability": 2 "probability": 100
}, },
{ {
"type": 2, "type": 2,
"name": "NFT", "name": "NFT",
"probability": 1 "probability": 100
} }
] ]

View File

@ -338,8 +338,8 @@ class BoxController extends BaseController {
const score = chest.scoreInit + chest.scoreBonus const score = chest.scoreInit + chest.scoreBonus
const dateTag = formatDate(new Date()) const dateTag = formatDate(new Date())
let items: any[] = [] let items: any[] = []
if (!user.inWhiteList) {
items = await generateChestBonus(chest) items = await generateChestBonus(chest, user.inWhiteList)
if (!chest.items) { if (!chest.items) {
chest.items = [] chest.items = []
} }
@ -350,7 +350,6 @@ class BoxController extends BaseController {
user.inWhiteList = true user.inWhiteList = true
await user.save() await user.save()
} }
}
await updateRankScore({ await updateRankScore({
user: user.id, user: user.id,

View File

@ -87,16 +87,19 @@ export const generateStepReward = (uid: string, activity: string, step: number)
return { score, chests } return { score, chests }
} }
export const generateChestBonus = async (chest: DocumentType<ActivityChestClass>) => { export const generateChestBonus = async (chest: DocumentType<ActivityChestClass>, hasWhite: boolean) => {
let rewards = [] let rewards = []
// 如果宝箱的助力用户数量小于最大助力次数, 则不生成奖励 // 如果宝箱的助力用户数量小于最大助力次数, 则不生成奖励
if (chest.bonusUsers.length < chest.maxBounsCount) { if (process.env.NODE_ENV === 'production' && chest.bonusUsers.length < chest.maxBounsCount) {
return [] return []
} }
let bonusItem let bonusItem
for (let i = 0; i < chestBonusItems.length; i++) { for (let i = 0; i < chestBonusItems.length; i++) {
let item = chestBonusItems[i] let item = chestBonusItems[i]
if (Math.random() < item.probability / 100) { if (Math.random() < item.probability / 100) {
if (item.type === 1 && hasWhite) {
continue
}
bonusItem = item bonusItem = item
break break
} }
@ -116,4 +119,5 @@ export const generateChestBonus = async (chest: DocumentType<ActivityChestClass>
desc: bonusItem.desc, desc: bonusItem.desc,
amount: 1, amount: 1,
}) })
return rewards
} }