skill_pool.go 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. // Code generated by excel export. DO NOT EDIT.
  2. package data
  3. var SkillPool = &skillPoolConfig{}
  4. func init() {
  5. _allList = append(_allList, SkillPool)
  6. }
  7. type (
  8. SkillPoolRow struct {
  9. PoolID int32 `json:"PoolID"` // 池ID
  10. SkillID int32 `json:"SkillID"` // 技能ID
  11. Weight int32 `json:"Weight"` // 权重
  12. }
  13. skillPoolConfig struct {
  14. baseConfig
  15. list []*SkillPoolRow // all list
  16. poolIDListMaps map[int32][]*SkillPoolRow // key:poolID
  17. poolIDSkillIDUniMaps map[int32]map[int32]*SkillPoolRow // key:poolID, skillID
  18. }
  19. )
  20. func (p *skillPoolConfig) Name() string {
  21. return "skill_pool"
  22. }
  23. func (p *skillPoolConfig) Init() {
  24. p.poolIDListMaps = map[int32][]*SkillPoolRow{}
  25. p.poolIDSkillIDUniMaps = map[int32]map[int32]*SkillPoolRow{}
  26. }
  27. func (p *skillPoolConfig) OnLoad(maps interface{}, reload bool) (int, error) {
  28. if reload && p.denyLoad {
  29. return 0, nil
  30. }
  31. var list []*SkillPoolRow
  32. if err := DecodeData(maps, &list); err != nil {
  33. return 0, err
  34. }
  35. p.list = list
  36. poolIDListMaps := map[int32][]*SkillPoolRow{}
  37. for _, row := range list {
  38. poolIDListMaps[row.PoolID] = append(poolIDListMaps[row.PoolID], row)
  39. }
  40. p.poolIDListMaps = poolIDListMaps
  41. poolIDSkillIDUniMaps := map[int32]map[int32]*SkillPoolRow{}
  42. for _, row := range list {
  43. itemMap := poolIDSkillIDUniMaps[row.PoolID]
  44. if itemMap == nil {
  45. itemMap = map[int32]*SkillPoolRow{}
  46. poolIDSkillIDUniMaps[row.PoolID] = itemMap
  47. }
  48. itemMap[row.SkillID] = row
  49. }
  50. p.poolIDSkillIDUniMaps = poolIDSkillIDUniMaps
  51. return len(list), nil
  52. }
  53. // func (p *skillPoolConfig) OnAfterLoad(_ bool) {
  54. // }
  55. func (p *skillPoolConfig) List() []*SkillPoolRow {
  56. return p.list
  57. }
  58. func (p *skillPoolConfig) ListByPoolID(poolID int32) ([]*SkillPoolRow, bool) {
  59. value, found := p.poolIDListMaps[poolID]
  60. return value, found
  61. }
  62. func (p *skillPoolConfig) ListContainPoolID(poolID int32) bool {
  63. _, found := p.poolIDListMaps[poolID]
  64. return found
  65. }
  66. func (p *skillPoolConfig) GetByPoolIDSkillID(poolID int32, skillID int32) (*SkillPoolRow, bool) {
  67. mapItem, found := p.poolIDSkillIDUniMaps[poolID]
  68. if !found {
  69. return nil, false
  70. }
  71. value, found := mapItem[skillID]
  72. return value, found
  73. }
  74. func (p *skillPoolConfig) ContainPoolIDSkillID(poolID int32, skillID int32) bool {
  75. mapItem, found := p.poolIDSkillIDUniMaps[poolID]
  76. if !found {
  77. return false
  78. }
  79. _, found = mapItem[skillID]
  80. return found
  81. }