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 }) }