修改探索奖励获取机制及数值
This commit is contained in:
parent
40fa0c70a2
commit
fa9d751a88
@ -18,11 +18,11 @@ export const CONFIRM_MAIL_HTML = `
|
||||
export const MANUAL_OPEN_GAME = false
|
||||
|
||||
// 每一步能获得的最小分数
|
||||
export const STEP_SCORE_MIN = 1
|
||||
export const STEP_SCORE_MIN = 50
|
||||
// 每一步能获得的最大分数
|
||||
export const STEP_SCORE_MAX = 5
|
||||
export const STEP_SCORE_MAX = 50
|
||||
// 每一步能获得的宝箱的概率
|
||||
export const STEP_CHEST_RATE = 0.1
|
||||
export const STEP_CHEST_RATE = 0.3
|
||||
// 宝箱各等级的概率
|
||||
export const STEP_CHEST_LEVEL = [70, 85, 95, 100]
|
||||
// 低保步数
|
||||
|
@ -355,17 +355,17 @@ class GameController extends BaseController {
|
||||
$inc: { tickets: -step },
|
||||
}
|
||||
let { score, chests } = generateStepReward(user.id, user.activity, step)
|
||||
if (chests.length > 0) {
|
||||
updateData.maxNoChestCount = 0
|
||||
} else {
|
||||
if (record.maxNoChestCount + step >= RESET_STEP) {
|
||||
updateData.maxNoChestCount = 0
|
||||
const level = generateChestLevel()
|
||||
chests.push(generateNewChest(user.id, user.activity, level, ChestStatusEnum.NORMAL))
|
||||
} else {
|
||||
updateData['$inc']['maxNoChestCount'] = step
|
||||
}
|
||||
}
|
||||
// if (chests.length > 0) {
|
||||
// updateData.maxNoChestCount = 0
|
||||
// } else {
|
||||
// if (record.maxNoChestCount + step >= RESET_STEP) {
|
||||
// updateData.maxNoChestCount = 0
|
||||
// const level = generateChestLevel()
|
||||
// chests.push(generateNewChest(user.id, user.activity, level, ChestStatusEnum.NORMAL))
|
||||
// } else {
|
||||
// updateData['$inc']['maxNoChestCount'] = step
|
||||
// }
|
||||
// }
|
||||
await ActivityGame.updateOne({ user: user.id, activity: user.activity }, updateData)
|
||||
await updateRankScore({
|
||||
user: user.id,
|
||||
|
@ -39,16 +39,24 @@ export const generateChestLevel = function (): number {
|
||||
}
|
||||
return level
|
||||
}
|
||||
|
||||
/**
|
||||
* 生成步数奖励
|
||||
* // TODO:: 增加白名单和特殊种类nft的奖励
|
||||
* @param uid
|
||||
* @param activity
|
||||
* @param step
|
||||
* @returns
|
||||
*/
|
||||
export const generateStepReward = (uid: string, activity: string, step: number) => {
|
||||
let score = 0
|
||||
let chests = []
|
||||
for (let i = 0; i < step; i++) {
|
||||
score += Math.floor(Math.random() * (STEP_SCORE_MAX - STEP_SCORE_MIN + 1) + STEP_SCORE_MIN)
|
||||
if (Math.random() < STEP_CHEST_RATE) {
|
||||
let randomLevel = generateChestLevel()
|
||||
let chest = generateNewChest(uid, activity, randomLevel, ChestStatusEnum.NORMAL)
|
||||
chests.push(chest)
|
||||
} else {
|
||||
score += Math.floor(Math.random() * (STEP_SCORE_MAX - STEP_SCORE_MIN + 1) + STEP_SCORE_MIN)
|
||||
}
|
||||
}
|
||||
return { score, chests }
|
||||
|
Loading…
x
Reference in New Issue
Block a user