// Code generated by excel export. DO NOT EDIT. package data import ( "f1-game/internal/types" ) var FacilityLevel = &facilityLevelConfig{} func init() { _allList = append(_allList, FacilityLevel) } type ( FacilityLevelRow struct { FacilityID int32 `json:"FacilityID"` // 建筑ID Level int32 `json:"Level"` // 等级 UpgradeCost types.Assets `json:"UpgradeCost"` // 升级消耗 UpgradeDuration int64 `json:"UpgradeDuration"` // 升级时间 Attrs types.Attrs `json:"Attrs"` // 属性值 PreFacilities types.PairList[int32, int32] `json:"PreFacilities"` // 前置建筑等级 LordLevel int32 `json:"LordLevel"` // 领主等级条件 } facilityLevelConfig struct { baseConfig list []*FacilityLevelRow // all list facilityIDLevelUniMaps map[int32]map[int32]*FacilityLevelRow // key:facilityID, level } ) func (p *facilityLevelConfig) Name() string { return "facility_level" } func (p *facilityLevelConfig) Init() { p.facilityIDLevelUniMaps = map[int32]map[int32]*FacilityLevelRow{} } func (p *facilityLevelConfig) OnLoad(maps interface{}, reload bool) (int, error) { if reload && p.denyLoad { return 0, nil } var list []*FacilityLevelRow if err := DecodeData(maps, &list); err != nil { return 0, err } p.list = list facilityIDLevelUniMaps := map[int32]map[int32]*FacilityLevelRow{} for _, row := range list { itemMap := facilityIDLevelUniMaps[row.FacilityID] if itemMap == nil { itemMap = map[int32]*FacilityLevelRow{} facilityIDLevelUniMaps[row.FacilityID] = itemMap } itemMap[row.Level] = row } p.facilityIDLevelUniMaps = facilityIDLevelUniMaps return len(list), nil } // func (p *facilityLevelConfig) OnAfterLoad(_ bool) { // } func (p *facilityLevelConfig) List() []*FacilityLevelRow { return p.list } func (p *facilityLevelConfig) GetByFacilityIDLevel(facilityID int32, level int32) (*FacilityLevelRow, bool) { mapItem, found := p.facilityIDLevelUniMaps[facilityID] if !found { return nil, false } value, found := mapItem[level] return value, found } func (p *facilityLevelConfig) ContainFacilityIDLevel(facilityID int32, level int32) bool { mapItem, found := p.facilityIDLevelUniMaps[facilityID] if !found { return false } _, found = mapItem[level] return found }