修改宝箱生成算法

This commit is contained in:
CounterFire2023 2024-04-16 22:37:48 +08:00
parent 156a4fc245
commit db8a16b954

View File

@ -8,7 +8,11 @@ const chestBonusItems = require('../../configs/chest_bonus_item.json')
const chestLevelMap = new Map() const chestLevelMap = new Map()
let STEP_CHEST_LEVEL = chestCfg.chests.map((cfg: any) => cfg.probability) let STEP_CHEST_LEVEL = chestCfg.chests.map((cfg: any) => cfg.probability)
STEP_CHEST_LEVEL.sort((a: number, b: number) => a - b) STEP_CHEST_LEVEL = STEP_CHEST_LEVEL.sort((a: number, b: number) => a - b)
for (let i = 1; i < STEP_CHEST_LEVEL.length; i++) {
STEP_CHEST_LEVEL[i] += STEP_CHEST_LEVEL[i - 1]
}
chestCfg.chests.forEach((cfg: any) => { chestCfg.chests.forEach((cfg: any) => {
chestLevelMap.set(cfg.level, cfg) chestLevelMap.set(cfg.level, cfg)
}) })
@ -51,14 +55,14 @@ export const generateNewChest = (uid: string, activity: string, level = 1, statu
export const generateChestLevel = function (): number { export const generateChestLevel = function (): number {
const levelDefine = STEP_CHEST_LEVEL const levelDefine = STEP_CHEST_LEVEL
let randomLevel = Math.floor(Math.random() * levelDefine[levelDefine.length - 1]) let randomLevel = Math.floor(Math.random() * levelDefine[levelDefine.length - 1])
let level = 1 let level = 0
for (let i = 0; i < levelDefine.length; i++) { for (let i = 0; i < levelDefine.length; i++) {
if (randomLevel < levelDefine[i]) { if (randomLevel < levelDefine[i]) {
level = i + 1 level = i
break break
} }
} }
return level return levelDefine.length - level
} }
/** /**
* *