package data import "f1-game/internal/extend/rand" var EquipAttrExtra = &extendEquipAttrExtraConfig{} func init() { _allList = append(_allList, EquipAttrExtra) } type extendEquipAttrExtraConfig struct { equipAttrExtraConfig poolIDWeightMap map[int32]*rand.Weight[*EquipAttrExtraRow] } func (p *extendEquipAttrExtraConfig) Init() { p.equipAttrExtraConfig.Init() p.poolIDWeightMap = map[int32]*rand.Weight[*EquipAttrExtraRow]{} } func (p *extendEquipAttrExtraConfig) OnAfterLoad(load bool) { p.equipAttrExtraConfig.OnAfterLoad(load) loadMap := map[int32]*rand.Weight[*EquipAttrExtraRow]{} for poolID, rows := range p.poolIDNoUniMaps { weight := rand.NewMapWeight(rows, func(v *EquipAttrExtraRow) int32 { return v.Weight }) loadMap[poolID] = weight } p.poolIDWeightMap = loadMap } func (p *extendEquipAttrExtraConfig) GetWeighter(poolID int32) (*rand.Weight[*EquipAttrExtraRow], bool) { value, found := p.poolIDWeightMap[poolID] return value, found } func (p *EquipAttrExtraRow) RandomValue() int64 { return rand.RangeInt(p.MinValue, p.MaxValue) }