map_build.go 3.9 KB

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