// Code generated by excel export. DO NOT EDIT. package data import ( "f1-game/internal/enum" "f1-game/internal/types" ) var MapBuild = &mapBuildConfig{} func init() { _allList = append(_allList, MapBuild) } type ( MapBuildRow struct { ConfigID int32 `json:"ConfigID"` // 建筑配置ID BuildCost types.Assets `json:"BuildCost"` // 建造消耗 BuildTime int64 `json:"BuildTime"` // 建造时间 ProtectTime int64 `json:"ProtectTime"` // 保护时间 InitBuildLimit int32 `json:"InitBuildLimit"` // 初始建造上限 Durability int32 `json:"Durability"` // 耐久 BuildingDurability int32 `json:"BuildingDurability"` // 建造中耐久 CanOutsideConscript bool `json:"CanOutsideConscript"` // 可城外征兵 Discardable bool `json:"Discardable"` // 可放弃 DiscardTime int64 `json:"DiscardTime"` // 放弃时间 DurabilityRecovery float64 `json:"DurabilityRecovery"` // 耐久回复 GarrisonArmies types.Pair[int32, int] `json:"GarrisonArmies"` // 驻城部队 GarrisonArmiesTroops int32 `json:"GarrisonArmiesTroops"` // 驻守部队兵力 DefendArmy int32 `json:"DefendArmy"` // 守军部队 DestroyType enum.DestroyType `json:"DestroyType"` // 攻破类型 BuildType enum.BuildType `json:"BuildType"` // 建造类型 PlaceRules types.Pair[int32, int] `json:"PlaceRules"` // 建造放置条件 SortPriority int32 `json:"SortPriority"` // 排序优先级 AreaRange int32 `json:"AreaRange"` // 领地半径 CoverOddOffsets types.Points `json:"CoverOddOffsets"` // 占地奇数偏移 CoverEvenOffsets types.Points `json:"CoverEvenOffsets"` // 占地偶数偏移 SiegeOddOffsets types.Points `json:"SiegeOddOffsets"` // 攻城点奇数偏移 SiegeEvenOffsets types.Points `json:"SiegeEvenOffsets"` // 攻城点偶数偏移 AffectOddOffsets types.Points `json:"AffectOddOffsets"` // 领土范围奇数偏移 AffectEvenOffsets types.Points `json:"AffectEvenOffsets"` // 领土范围偶数偏移 AffectEdgeOddOffsets types.Points `json:"AffectEdgeOddOffsets"` // 领土范围外一圈奇数偏移 AffectEdgeEvenOffsets types.Points `json:"AffectEdgeEvenOffsets"` // 领土范围外一圈偶数偏移 } mapBuildConfig struct { baseConfig list []*MapBuildRow // all list configIDUniMaps map[int32]*MapBuildRow // key:configID } ) func (p *mapBuildConfig) Name() string { return "map_build" } func (p *mapBuildConfig) Init() { p.configIDUniMaps = map[int32]*MapBuildRow{} } func (p *mapBuildConfig) OnLoad(maps interface{}, reload bool) (int, error) { if reload && p.denyLoad { return 0, nil } var list []*MapBuildRow if err := DecodeData(maps, &list); err != nil { return 0, err } p.list = list configIDUniMaps := map[int32]*MapBuildRow{} for _, row := range list { configIDUniMaps[row.ConfigID] = row } p.configIDUniMaps = configIDUniMaps return len(list), nil } // func (p *mapBuildConfig) OnAfterLoad(_ bool) { // } func (p *mapBuildConfig) List() []*MapBuildRow { return p.list } func (p *mapBuildConfig) GetByConfigID(configID int32) (*MapBuildRow, bool) { value, found := p.configIDUniMaps[configID] return value, found } func (p *mapBuildConfig) ContainConfigID(configID int32) bool { _, found := p.configIDUniMaps[configID] return found }