mini_game.go 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. // Code generated by excel export. DO NOT EDIT.
  2. package data
  3. import (
  4. "f1-game/internal/types"
  5. )
  6. var MiniGame = &miniGameConfig{}
  7. func init() {
  8. _allList = append(_allList, MiniGame)
  9. }
  10. type (
  11. MiniGameRow struct {
  12. GameID int32 `json:"GameID"` // 游戏ID
  13. LevelID int32 `json:"LevelID"` // 关卡ID
  14. NextLevelID int32 `json:"NextLevelID"` // 下一关卡ID
  15. Name int32 `json:"Name"` // 关卡名称
  16. Headlcon string `json:"Headlcon"` // 关卡怪物头像
  17. ChapterUnlockLevelID int32 `json:"ChapterUnlockLevelID"` // 探险解锁关卡ID
  18. LevelType int32 `json:"LevelType"` // 关卡类型
  19. Reward types.Assets `json:"Reward"` // 奖励
  20. }
  21. miniGameConfig struct {
  22. baseConfig
  23. list []*MiniGameRow // all list
  24. gameIDLevelIDUniMaps map[int32]map[int32]*MiniGameRow // key:gameID, levelID
  25. }
  26. )
  27. func (p *miniGameConfig) Name() string {
  28. return "mini_game"
  29. }
  30. func (p *miniGameConfig) Init() {
  31. p.gameIDLevelIDUniMaps = map[int32]map[int32]*MiniGameRow{}
  32. }
  33. func (p *miniGameConfig) OnLoad(maps interface{}, reload bool) (int, error) {
  34. if reload && p.denyLoad {
  35. return 0, nil
  36. }
  37. var list []*MiniGameRow
  38. if err := DecodeData(maps, &list); err != nil {
  39. return 0, err
  40. }
  41. p.list = list
  42. gameIDLevelIDUniMaps := map[int32]map[int32]*MiniGameRow{}
  43. for _, row := range list {
  44. itemMap := gameIDLevelIDUniMaps[row.GameID]
  45. if itemMap == nil {
  46. itemMap = map[int32]*MiniGameRow{}
  47. gameIDLevelIDUniMaps[row.GameID] = itemMap
  48. }
  49. itemMap[row.LevelID] = row
  50. }
  51. p.gameIDLevelIDUniMaps = gameIDLevelIDUniMaps
  52. return len(list), nil
  53. }
  54. // func (p *miniGameConfig) OnAfterLoad(_ bool) {
  55. // }
  56. func (p *miniGameConfig) List() []*MiniGameRow {
  57. return p.list
  58. }
  59. func (p *miniGameConfig) GetByGameIDLevelID(gameID int32, levelID int32) (*MiniGameRow, bool) {
  60. mapItem, found := p.gameIDLevelIDUniMaps[gameID]
  61. if !found {
  62. return nil, false
  63. }
  64. value, found := mapItem[levelID]
  65. return value, found
  66. }
  67. func (p *miniGameConfig) ContainGameIDLevelID(gameID int32, levelID int32) bool {
  68. mapItem, found := p.gameIDLevelIDUniMaps[gameID]
  69. if !found {
  70. return false
  71. }
  72. _, found = mapItem[levelID]
  73. return found
  74. }