40 lines
946 B
Go
40 lines
946 B
Go
package data
|
|
|
|
import "github.com/oylshe1314/framework/util"
|
|
|
|
type WarshipSkillTableExtend struct {
|
|
*WarshipSkillTable
|
|
|
|
extMap1 map[int][]*WarshipSkill
|
|
}
|
|
|
|
func (this *WarshipSkillTableExtend) init() error {
|
|
if this.WarshipSkillTable == nil {
|
|
return nil
|
|
}
|
|
|
|
this.extMap1 = map[int][]*WarshipSkill{}
|
|
for _, d := range this.l {
|
|
this.extMap1[d.PassiveSkillStyle] = append(this.extMap1[d.PassiveSkillStyle], d)
|
|
}
|
|
|
|
return nil
|
|
}
|
|
|
|
func (this *WarshipSkillTableExtend) List(passiveSkillStyle int) []*WarshipSkill {
|
|
return this.extMap1[passiveSkillStyle]
|
|
}
|
|
|
|
func (this *WarshipSkillTableExtend) Random(passiveSkillStyle int, exclude map[int]struct{}) *WarshipSkill {
|
|
var skillTables []*WarshipSkill
|
|
for _, skill := range this.List(passiveSkillStyle) {
|
|
if _, ok := exclude[skill.SkillId]; !ok {
|
|
skillTables = append(skillTables, skill)
|
|
}
|
|
}
|
|
|
|
return util.RandomWeights(skillTables, func(i int) int {
|
|
return skillTables[i].Weight
|
|
})
|
|
}
|