// Code generated by excel export. DO NOT EDIT. package data import ( "f1-game/internal/enum" "f1-game/internal/types" ) var Quest = &questConfig{} func init() { _allList = append(_allList, Quest) } type ( QuestRow struct { QuestGroupID int32 `json:"QuestGroupID"` // 任务组ID QuestID int32 `json:"QuestID"` // ID IsAccumulate bool `json:"IsAccumulate"` // 是否累计 QuestType enum.QuestType `json:"QuestType"` // 任务类型 QuestParams types.List[int32] `json:"QuestParams"` // 任务参数 NextQuestID int32 `json:"NextQuestID"` // 下一个任务ID Rewards types.Assets `json:"Rewards"` // 奖励列表 Disabled bool `json:"Disabled"` // 是否禁用 } questConfig struct { baseConfig list []*QuestRow // all list questGroupIDListMaps map[int32][]*QuestRow // key:questGroupID questIDUniMaps map[int32]*QuestRow // key:questID questGroupIDQuestIDUniMaps map[int32]map[int32]*QuestRow // key:questGroupID, questID } ) func (p *questConfig) Name() string { return "quest" } func (p *questConfig) Init() { p.questGroupIDListMaps = map[int32][]*QuestRow{} p.questIDUniMaps = map[int32]*QuestRow{} p.questGroupIDQuestIDUniMaps = map[int32]map[int32]*QuestRow{} } func (p *questConfig) OnLoad(maps interface{}, reload bool) (int, error) { if reload && p.denyLoad { return 0, nil } var list []*QuestRow if err := DecodeData(maps, &list); err != nil { return 0, err } p.list = list questGroupIDListMaps := map[int32][]*QuestRow{} for _, row := range list { questGroupIDListMaps[row.QuestGroupID] = append(questGroupIDListMaps[row.QuestGroupID], row) } p.questGroupIDListMaps = questGroupIDListMaps questIDUniMaps := map[int32]*QuestRow{} for _, row := range list { questIDUniMaps[row.QuestID] = row } p.questIDUniMaps = questIDUniMaps questGroupIDQuestIDUniMaps := map[int32]map[int32]*QuestRow{} for _, row := range list { itemMap := questGroupIDQuestIDUniMaps[row.QuestGroupID] if itemMap == nil { itemMap = map[int32]*QuestRow{} questGroupIDQuestIDUniMaps[row.QuestGroupID] = itemMap } itemMap[row.QuestID] = row } p.questGroupIDQuestIDUniMaps = questGroupIDQuestIDUniMaps return len(list), nil } // func (p *questConfig) OnAfterLoad(_ bool) { // } func (p *questConfig) List() []*QuestRow { return p.list } func (p *questConfig) ListByQuestGroupID(questGroupID int32) ([]*QuestRow, bool) { value, found := p.questGroupIDListMaps[questGroupID] return value, found } func (p *questConfig) ListContainQuestGroupID(questGroupID int32) bool { _, found := p.questGroupIDListMaps[questGroupID] return found } func (p *questConfig) GetByQuestID(questID int32) (*QuestRow, bool) { value, found := p.questIDUniMaps[questID] return value, found } func (p *questConfig) ContainQuestID(questID int32) bool { _, found := p.questIDUniMaps[questID] return found } func (p *questConfig) GetByQuestGroupIDQuestID(questGroupID int32, questID int32) (*QuestRow, bool) { mapItem, found := p.questGroupIDQuestIDUniMaps[questGroupID] if !found { return nil, false } value, found := mapItem[questID] return value, found } func (p *questConfig) ContainQuestGroupIDQuestID(questGroupID int32, questID int32) bool { mapItem, found := p.questGroupIDQuestIDUniMaps[questGroupID] if !found { return false } _, found = mapItem[questID] return found }