| 12345678910111213141516171819202122232425262728293031323334353637 |
- package itemUse
- import (
- "f1-game/internal/code"
- "f1-game/internal/data"
- "f1-game/internal/enum"
- "f1-game/internal/pb"
- "f1-game/internal/types"
- )
- // Random 使用后按随机规则添加
- type Random struct {
- }
- func (*Random) UseType() enum.ItemUseType {
- return enum.ItemUseRandom
- }
- func (*Random) Use(_ int64, req *pb.ItemUseRequest, poolID int32) (types.Assets, int32) {
- weighter, found := data.DropPool.GetWeighter(poolID)
- if !found {
- return types.NoneAssets, code.ItemUseFail
- }
- retAssets := types.Assets{} // return assets
- for range req.UseNum {
- // 随机取一个物品
- row := weighter.SelectOne()
- if row == nil {
- continue
- }
- retAssets.Add(row.ItemID, row.Num)
- }
- return retAssets, code.OK
- }
|