package data import ( "f1-game/internal/extend/rand" "f1-game/internal/types" ) // 获取附加属性的数量 func (p *EquipRow) GetExtraAttrNum() int32 { totalProp := int32(0) for _, prop := range p.RandomAttrNumRange { totalProp += prop.Value } randNum := rand.RangeInt(0, totalProp) curProp := int32(0) for _, prop := range p.RandomAttrNumRange { curProp += prop.Value if randNum <= curProp { return prop.Key } } return 0 } // 随机技能池 func (p *EquipRow) RandomSingleSkillPool() int32 { totalProp := int32(0) for _, skillPool := range p.RandomSkillPools { totalProp += skillPool.Value } var ( randValue = rand.RangeInt(0, totalProp) curProp = int32(0) ) for _, skillPool := range p.RandomSkillPools { curProp += skillPool.Value if randValue <= curProp { return skillPool.Key } } return 0 } func (p *EquipRow) CalEquipCraftCosts(num int64) types.Assets { needCosts := types.Assets{} for _, cost := range p.CraftCosts { needCosts.Add(cost.ID, cost.Num*num) } return needCosts }