quest.go 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. // Code generated by excel export. DO NOT EDIT.
  2. package data
  3. import (
  4. "f1-game/internal/enum"
  5. "f1-game/internal/types"
  6. )
  7. var Quest = &questConfig{}
  8. func init() {
  9. _allList = append(_allList, Quest)
  10. }
  11. type (
  12. QuestRow struct {
  13. QuestGroupID int32 `json:"QuestGroupID"` // 任务组ID
  14. QuestID int32 `json:"QuestID"` // ID
  15. IsAccumulate bool `json:"IsAccumulate"` // 是否累计
  16. QuestType enum.QuestType `json:"QuestType"` // 任务类型
  17. QuestParams types.List[int32] `json:"QuestParams"` // 任务参数
  18. NextQuestID int32 `json:"NextQuestID"` // 下一个任务ID
  19. Rewards types.Assets `json:"Rewards"` // 奖励列表
  20. Disabled bool `json:"Disabled"` // 是否禁用
  21. }
  22. questConfig struct {
  23. baseConfig
  24. list []*QuestRow // all list
  25. questGroupIDListMaps map[int32][]*QuestRow // key:questGroupID
  26. questIDUniMaps map[int32]*QuestRow // key:questID
  27. questGroupIDQuestIDUniMaps map[int32]map[int32]*QuestRow // key:questGroupID, questID
  28. }
  29. )
  30. func (p *questConfig) Name() string {
  31. return "quest"
  32. }
  33. func (p *questConfig) Init() {
  34. p.questGroupIDListMaps = map[int32][]*QuestRow{}
  35. p.questIDUniMaps = map[int32]*QuestRow{}
  36. p.questGroupIDQuestIDUniMaps = map[int32]map[int32]*QuestRow{}
  37. }
  38. func (p *questConfig) OnLoad(maps interface{}, reload bool) (int, error) {
  39. if reload && p.denyLoad {
  40. return 0, nil
  41. }
  42. var list []*QuestRow
  43. if err := DecodeData(maps, &list); err != nil {
  44. return 0, err
  45. }
  46. p.list = list
  47. questGroupIDListMaps := map[int32][]*QuestRow{}
  48. for _, row := range list {
  49. questGroupIDListMaps[row.QuestGroupID] = append(questGroupIDListMaps[row.QuestGroupID], row)
  50. }
  51. p.questGroupIDListMaps = questGroupIDListMaps
  52. questIDUniMaps := map[int32]*QuestRow{}
  53. for _, row := range list {
  54. questIDUniMaps[row.QuestID] = row
  55. }
  56. p.questIDUniMaps = questIDUniMaps
  57. questGroupIDQuestIDUniMaps := map[int32]map[int32]*QuestRow{}
  58. for _, row := range list {
  59. itemMap := questGroupIDQuestIDUniMaps[row.QuestGroupID]
  60. if itemMap == nil {
  61. itemMap = map[int32]*QuestRow{}
  62. questGroupIDQuestIDUniMaps[row.QuestGroupID] = itemMap
  63. }
  64. itemMap[row.QuestID] = row
  65. }
  66. p.questGroupIDQuestIDUniMaps = questGroupIDQuestIDUniMaps
  67. return len(list), nil
  68. }
  69. // func (p *questConfig) OnAfterLoad(_ bool) {
  70. // }
  71. func (p *questConfig) List() []*QuestRow {
  72. return p.list
  73. }
  74. func (p *questConfig) ListByQuestGroupID(questGroupID int32) ([]*QuestRow, bool) {
  75. value, found := p.questGroupIDListMaps[questGroupID]
  76. return value, found
  77. }
  78. func (p *questConfig) ListContainQuestGroupID(questGroupID int32) bool {
  79. _, found := p.questGroupIDListMaps[questGroupID]
  80. return found
  81. }
  82. func (p *questConfig) GetByQuestID(questID int32) (*QuestRow, bool) {
  83. value, found := p.questIDUniMaps[questID]
  84. return value, found
  85. }
  86. func (p *questConfig) ContainQuestID(questID int32) bool {
  87. _, found := p.questIDUniMaps[questID]
  88. return found
  89. }
  90. func (p *questConfig) GetByQuestGroupIDQuestID(questGroupID int32, questID int32) (*QuestRow, bool) {
  91. mapItem, found := p.questGroupIDQuestIDUniMaps[questGroupID]
  92. if !found {
  93. return nil, false
  94. }
  95. value, found := mapItem[questID]
  96. return value, found
  97. }
  98. func (p *questConfig) ContainQuestGroupIDQuestID(questGroupID int32, questID int32) bool {
  99. mapItem, found := p.questGroupIDQuestIDUniMaps[questGroupID]
  100. if !found {
  101. return false
  102. }
  103. _, found = mapItem[questID]
  104. return found
  105. }