map.go 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181
  1. package enum
  2. // 地块对象类型
  3. type ObjectType int32
  4. const (
  5. ObjectType_Player ObjectType = 0 // 玩家(作为观察者,不会出现在地图上)
  6. ObjectType_Tile ObjectType = 1 // 地块
  7. ObjectType_Castle ObjectType = 2 // 城池
  8. ObjectType_Build ObjectType = 3 // 建筑
  9. ObjectType_March ObjectType = 4 // 行军对象
  10. ObjectType_Monster ObjectType = 5 // 怪物
  11. ObjectType_Res ObjectType = 6 // 资源
  12. ObjectType_Legion ObjectType = 7 // 军团
  13. ObjectType_Machine ObjectType = 8 // 器械
  14. )
  15. const (
  16. ObjectType_Unknow = "Unkonw" // 未知
  17. MarchType_Unknow = "Unkonw" // 未知
  18. )
  19. var (
  20. objectTypeName = map[ObjectType]string{
  21. ObjectType_Player: "Player",
  22. ObjectType_Tile: "Tile",
  23. ObjectType_Castle: "Castle",
  24. ObjectType_Build: "Build",
  25. ObjectType_March: "March",
  26. ObjectType_Monster: "Monster",
  27. ObjectType_Res: "Res",
  28. ObjectType_Legion: "Legion",
  29. ObjectType_Machine: "Machine",
  30. }
  31. marchTypeName = map[MarchType]string{
  32. MarchType_Stay: "Stay",
  33. MarchType_Occupy: "Occupy",
  34. MarchType_Crucade: "Attack",
  35. MarchType_Garrison: "Garrison",
  36. MarchType_Gather: "Gather",
  37. MarchType_Siege: "Siege",
  38. MarchType_Redeploy: "Redeploy",
  39. MarchType_Retreat: "Retreat",
  40. MarchType_Assemble: "Assemble",
  41. MarchType_Entrust: "Entrust",
  42. MarchType_LegionAssemble: "LegionAssemble",
  43. }
  44. )
  45. func GetObjectTypeName(objectType ObjectType) string {
  46. if val, found := objectTypeName[objectType]; found {
  47. return val
  48. }
  49. return ObjectType_Unknow
  50. }
  51. func GetMarchTypeName(marchType MarchType) string {
  52. if val, found := marchTypeName[marchType]; found {
  53. return val
  54. }
  55. return MarchType_Unknow
  56. }
  57. // 行军类型
  58. type MarchType int32
  59. const (
  60. MarchType_Stay MarchType = 1 // 行军-停留
  61. MarchType_Occupy MarchType = 2 // 行军-占领
  62. MarchType_Crucade MarchType = 3 // 行军-讨伐
  63. MarchType_Garrison MarchType = 4 // 行军-驻守
  64. MarchType_Gather MarchType = 5 // 行军-采集
  65. MarchType_Siege MarchType = 7 // 行军-攻城
  66. MarchType_Redeploy MarchType = 8 // 行军-调动
  67. MarchType_Retreat MarchType = 9 // 行军-撤退
  68. MarchType_Assemble MarchType = 10 // 行军-集结(指令用于部队行军之后加入军团)
  69. MarchType_Entrust MarchType = 11 // 行军-委托
  70. MarchType_Snatch MarchType = 12 // 行军-掠夺
  71. MarchType_SiegeAssemble MarchType = 13 // 行军-攻城集结
  72. MarchType_LegionAssemble MarchType = 14 // 行军-军团集结(指令用军团行军到集结对象并发生战斗)
  73. )
  74. // 撤退类型
  75. type RetreatType int32
  76. const (
  77. RetreatType_Retreat RetreatType = 0 // 撤退
  78. RetreatType_Rout RetreatType = 1 // 溃败
  79. RetreatType_Transport RetreatType = 2 // 运输
  80. RetreatType_Must RetreatType = 3 // 必定回城
  81. )
  82. func GetRetreatMarchState(retreatType RetreatType) MarchState {
  83. switch retreatType {
  84. case RetreatType_Transport:
  85. // 运输回城返回运输回城状态
  86. return MarchState_March
  87. case RetreatType_Rout:
  88. // 溃败返回溃败状态
  89. return MarchState_Rout
  90. }
  91. // 其他返回正常回城状态
  92. return MarchState_Retreat
  93. }
  94. // 攻城大营阶段
  95. type SiegeCampStage int32
  96. const (
  97. SiegeCampStage_Wait SiegeCampStage = 0 // 等待
  98. SiegeCampStage_MainForce SiegeCampStage = 1 // 主力出击
  99. SiegeCampStage_SiegeSquad SiegeCampStage = 2 // 拆迁队出击
  100. SiegeCampStage_Siege SiegeCampStage = 3 // 攻城
  101. )
  102. // 攻破类型
  103. type DestroyType int32
  104. const (
  105. DestroyType_None DestroyType = 0 // 无,属于殊特建筑,走特殊逻辑
  106. DestroyType_Remove DestroyType = 1 // 拆除
  107. DestroyType_Occupy DestroyType = 2 // 占领
  108. )
  109. // 建造类型
  110. type BuildType int32
  111. const (
  112. BuildType_None BuildType = 0 // 不可建造
  113. BuildType_League BuildType = 1 // 联盟可建造
  114. BuildType_Player BuildType = 2 // 玩家可建造
  115. )
  116. // 覆盖类型
  117. type OverrideType int32
  118. const (
  119. OverrideType_None OverrideType = 0 // 不可覆盖
  120. OverrideType_Remove OverrideType = 1 // 覆盖后删除
  121. OverrideType_Hide OverrideType = 2 // 覆盖后隐藏
  122. )
  123. // 军团状态
  124. type LegionState int32
  125. const (
  126. LegionState_None LegionState = 0 // 无
  127. LegionState_AssembleWait LegionState = 1 // 集结等待
  128. LegionState_AssembleFinish LegionState = 2 // 集结完成
  129. LegionState_AssembleMarch LegionState = 3 // 集结行军
  130. LegionState_BattleWait LegionState = 4 // 战斗等待
  131. LegionState_Crusade LegionState = 5 // 讨伐
  132. LegionState_Siege LegionState = 6 // 攻城
  133. )
  134. func GetLegionStateName(state LegionState) string {
  135. switch state {
  136. case LegionState_None:
  137. return "None"
  138. case LegionState_AssembleWait:
  139. return "AssembleWait"
  140. case LegionState_AssembleFinish:
  141. return "AssembleFinish"
  142. case LegionState_AssembleMarch:
  143. return "AssembleMarch"
  144. }
  145. return "Unknown"
  146. }
  147. // 领土类型
  148. type TileAreaType int32
  149. const (
  150. TileArea_None TileAreaType = 0 // 无主领地
  151. TileArea_System TileAreaType = 1 // 系统领地
  152. TileArea_League TileAreaType = 2 // 联盟领地
  153. )