skill_level.go 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. // Code generated by excel export. DO NOT EDIT.
  2. package data
  3. import (
  4. "f1-game/internal/types"
  5. )
  6. var SkillLevel = &skillLevelConfig{}
  7. func init() {
  8. _allList = append(_allList, SkillLevel)
  9. }
  10. type (
  11. SkillLevelRow struct {
  12. SkillID int32 `json:"SkillID"` // ID
  13. Level int32 `json:"Level"` // 等级
  14. UnlockStar int32 `json:"UnlockStar"` // 解锁英雄星级
  15. UpgradeCost types.Assets `json:"UpgradeCost"` // 升到下一级消耗
  16. }
  17. skillLevelConfig struct {
  18. baseConfig
  19. list []*SkillLevelRow // all list
  20. skillIDLevelUniMaps map[int32]map[int32]*SkillLevelRow // key:skillID, level
  21. }
  22. )
  23. func (p *skillLevelConfig) Name() string {
  24. return "skill_level"
  25. }
  26. func (p *skillLevelConfig) Init() {
  27. p.skillIDLevelUniMaps = map[int32]map[int32]*SkillLevelRow{}
  28. }
  29. func (p *skillLevelConfig) OnLoad(maps interface{}, reload bool) (int, error) {
  30. if reload && p.denyLoad {
  31. return 0, nil
  32. }
  33. var list []*SkillLevelRow
  34. if err := DecodeData(maps, &list); err != nil {
  35. return 0, err
  36. }
  37. p.list = list
  38. skillIDLevelUniMaps := map[int32]map[int32]*SkillLevelRow{}
  39. for _, row := range list {
  40. itemMap := skillIDLevelUniMaps[row.SkillID]
  41. if itemMap == nil {
  42. itemMap = map[int32]*SkillLevelRow{}
  43. skillIDLevelUniMaps[row.SkillID] = itemMap
  44. }
  45. itemMap[row.Level] = row
  46. }
  47. p.skillIDLevelUniMaps = skillIDLevelUniMaps
  48. return len(list), nil
  49. }
  50. // func (p *skillLevelConfig) OnAfterLoad(_ bool) {
  51. // }
  52. func (p *skillLevelConfig) List() []*SkillLevelRow {
  53. return p.list
  54. }
  55. func (p *skillLevelConfig) GetBySkillIDLevel(skillID int32, level int32) (*SkillLevelRow, bool) {
  56. mapItem, found := p.skillIDLevelUniMaps[skillID]
  57. if !found {
  58. return nil, false
  59. }
  60. value, found := mapItem[level]
  61. return value, found
  62. }
  63. func (p *skillLevelConfig) ContainSkillIDLevel(skillID int32, level int32) bool {
  64. mapItem, found := p.skillIDLevelUniMaps[skillID]
  65. if !found {
  66. return false
  67. }
  68. _, found = mapItem[level]
  69. return found
  70. }