map_build.go 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  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 MapBuild = &mapBuildConfig{}
  8. func init() {
  9. _allList = append(_allList, MapBuild)
  10. }
  11. type (
  12. MapBuildRow struct {
  13. ConfigID int32 `json:"ConfigID"` // 建筑配置ID
  14. BuildingCategory int32 `json:"BuildingCategory"` // 建筑大类
  15. BuildCost types.Assets `json:"BuildCost"` // 建造消耗
  16. BuildTime int64 `json:"BuildTime"` // 建造时间
  17. ProtectTime int64 `json:"ProtectTime"` // 保护时间
  18. InitBuildLimit int32 `json:"InitBuildLimit"` // 初始建造上限
  19. Durability int32 `json:"Durability"` // 耐久
  20. BuildingDurability int32 `json:"BuildingDurability"` // 建造中耐久
  21. CanOutsideConscript bool `json:"CanOutsideConscript"` // 可城外征兵
  22. Discardable bool `json:"Discardable"` // 可放弃
  23. DiscardTime int64 `json:"DiscardTime"` // 放弃时间
  24. DurabilityRecovery float64 `json:"DurabilityRecovery"` // 耐久回复
  25. GarrisonArmies types.Pair[int32, int] `json:"GarrisonArmies"` // 驻城部队
  26. GarrisonArmiesTroops int32 `json:"GarrisonArmiesTroops"` // 驻守部队兵力
  27. DefendArmy int32 `json:"DefendArmy"` // 守军部队
  28. DestroyType enum.DestroyType `json:"DestroyType"` // 攻破类型
  29. BuildType enum.BuildType `json:"BuildType"` // 建造类型
  30. PlaceRules types.Pair[int32, int] `json:"PlaceRules"` // 建造放置条件
  31. SortPriority int32 `json:"SortPriority"` // 排序优先级
  32. AreaRange int32 `json:"AreaRange"` // 领地半径
  33. CoverOddOffsets types.Points `json:"CoverOddOffsets"` // 占地奇数偏移
  34. CoverEvenOffsets types.Points `json:"CoverEvenOffsets"` // 占地偶数偏移
  35. SiegeOddOffsets types.Points `json:"SiegeOddOffsets"` // 攻城点奇数偏移
  36. SiegeEvenOffsets types.Points `json:"SiegeEvenOffsets"` // 攻城点偶数偏移
  37. AffectOddOffsets types.Points `json:"AffectOddOffsets"` // 领土范围奇数偏移
  38. AffectEvenOffsets types.Points `json:"AffectEvenOffsets"` // 领土范围偶数偏移
  39. AffectEdgeOddOffsets types.Points `json:"AffectEdgeOddOffsets"` // 领土范围外一圈奇数偏移
  40. AffectEdgeEvenOffsets types.Points `json:"AffectEdgeEvenOffsets"` // 领土范围外一圈偶数偏移
  41. }
  42. mapBuildConfig struct {
  43. baseConfig
  44. list []*MapBuildRow // all list
  45. configIDUniMaps map[int32]*MapBuildRow // key:configID
  46. }
  47. )
  48. func (p *mapBuildConfig) Name() string {
  49. return "map_build"
  50. }
  51. func (p *mapBuildConfig) Init() {
  52. p.configIDUniMaps = map[int32]*MapBuildRow{}
  53. }
  54. func (p *mapBuildConfig) OnLoad(maps interface{}, reload bool) (int, error) {
  55. if reload && p.denyLoad {
  56. return 0, nil
  57. }
  58. var list []*MapBuildRow
  59. if err := DecodeData(maps, &list); err != nil {
  60. return 0, err
  61. }
  62. p.list = list
  63. configIDUniMaps := map[int32]*MapBuildRow{}
  64. for _, row := range list {
  65. configIDUniMaps[row.ConfigID] = row
  66. }
  67. p.configIDUniMaps = configIDUniMaps
  68. return len(list), nil
  69. }
  70. // func (p *mapBuildConfig) OnAfterLoad(_ bool) {
  71. // }
  72. func (p *mapBuildConfig) List() []*MapBuildRow {
  73. return p.list
  74. }
  75. func (p *mapBuildConfig) GetByConfigID(configID int32) (*MapBuildRow, bool) {
  76. value, found := p.configIDUniMaps[configID]
  77. return value, found
  78. }
  79. func (p *mapBuildConfig) ContainConfigID(configID int32) bool {
  80. _, found := p.configIDUniMaps[configID]
  81. return found
  82. }