| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- package data
- import (
- "f1-game/internal/code"
- "f1-game/internal/constant"
- "f1-game/internal/extend/rand"
- "f1-game/internal/types"
- clog "github.com/cherry-game/cherry/logger"
- )
- // 获取关卡首胜奖励
- func (p *ChapterLevelRow) GetFirstRewards() types.Assets {
- rewards := types.Assets{}
- // 获取固定奖励
- for _, reward := range p.FixedRewards {
- rewards.Add(reward.ID, reward.Num)
- }
- // 首通奖励
- for _, reward := range p.FirstReward {
- rewards.Add(reward.ID, reward.Num)
- }
- return rewards
- }
- // 随机挑战奖励
- func (p *ChapterLevelRow) RandomChapterLevelReward() types.Assets {
- rewards := types.Assets{}
- // 固定奖励
- for _, reward := range p.FixedRewards {
- rewards.Add(reward.ID, reward.Num)
- }
- // 随机奖励
- for _, rewardPool := range p.RandomRewardPools {
- randValue := rand.RangeInt(0, constant.RatioBase)
- if rewardPool.Value < randValue {
- continue
- }
- row, ok := DropPool.Random(rewardPool.Key)
- if code.IsFail(ok) {
- clog.Warnf("chapter level reward not found. levelID:%d, pool:%d", p.ID, rewardPool.Key)
- continue
- }
- if row != nil {
- rewards.Add(row.ItemID, row.Num)
- }
- }
- return rewards
- }
- // 通过次数获取挑战消耗
- func (p *ChapterLevelRow) GetChapterLevelCost(num int32) types.Assets {
- costs := types.Assets{}
- for _, asset := range p.CostStamina {
- costs.Add(asset.ID, asset.Num*int64(num))
- }
- return costs
- }
|