map.go 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272
  1. package enum
  2. import "f1-game/internal/pb"
  3. // 地块对象类型
  4. type ObjectType int32
  5. const (
  6. ObjectType_Player ObjectType = 0 // 玩家(作为观察者,不会出现在地图上)
  7. ObjectType_Tile ObjectType = 1 // 地块
  8. ObjectType_Castle ObjectType = 2 // 城池
  9. ObjectType_Build ObjectType = 3 // 建筑
  10. ObjectType_March ObjectType = 4 // 行军对象
  11. ObjectType_Monster ObjectType = 5 // 怪物
  12. ObjectType_Res ObjectType = 6 // 资源
  13. ObjectType_Legion ObjectType = 7 // 军团
  14. ObjectType_Machine ObjectType = 8 // 器械
  15. ObjectType_ArmyLine ObjectType = 9 // 军情线
  16. )
  17. const (
  18. ObjectType_Unknow = "Unkonw" // 未知
  19. )
  20. var (
  21. objectTypeName = map[ObjectType]string{
  22. ObjectType_Player: "Player",
  23. ObjectType_Tile: "Tile",
  24. ObjectType_Castle: "Castle",
  25. ObjectType_Build: "Build",
  26. ObjectType_March: "March",
  27. ObjectType_Monster: "Monster",
  28. ObjectType_Res: "Res",
  29. ObjectType_Legion: "Legion",
  30. ObjectType_Machine: "Machine",
  31. ObjectType_ArmyLine: "ArmyLine",
  32. }
  33. marchTypeName = map[MarchType]string{
  34. MarchType_Stay: "Stay",
  35. MarchType_Occupy: "Occupy",
  36. MarchType_Crucade: "Attack",
  37. MarchType_Garrison: "Garrison",
  38. MarchType_Siege: "Siege",
  39. MarchType_Redeploy: "Redeploy",
  40. MarchType_Retreat: "Retreat",
  41. MarchType_Assemble: "Assemble",
  42. MarchType_Entrust: "Entrust",
  43. MarchType_LegionAssemble: "LegionAssemble",
  44. }
  45. )
  46. func GetObjectTypeName(objectType ObjectType) string {
  47. if val, found := objectTypeName[objectType]; found {
  48. return val
  49. }
  50. return ObjectType_Unknow
  51. }
  52. func GetMarchTypeName(marchType MarchType) string {
  53. if val, found := marchTypeName[marchType]; found {
  54. return val
  55. }
  56. return "unknown"
  57. }
  58. // 行军类型
  59. type MarchType int32
  60. const (
  61. MarchType_Unknow MarchType = 0 // 未知
  62. MarchType_Stay MarchType = 1 // 行军-停留
  63. MarchType_Occupy MarchType = 2 // 行军-占领
  64. MarchType_Crucade MarchType = 3 // 行军-讨伐
  65. MarchType_Garrison MarchType = 4 // 行军-驻守
  66. MarchType_Siege MarchType = 7 // 行军-攻城
  67. MarchType_Redeploy MarchType = 8 // 行军-调动
  68. MarchType_Retreat MarchType = 9 // 行军-撤退
  69. MarchType_Assemble MarchType = 10 // 行军-集结(指令用于部队行军之后加入军团)
  70. MarchType_Entrust MarchType = 11 // 行军-委托
  71. MarchType_Snatch MarchType = 12 // 行军-掠夺
  72. MarchType_SiegeAssemble MarchType = 13 // 行军-攻城集结
  73. MarchType_LegionAssemble MarchType = 14 // 行军-军团集结(指令用军团行军到集结对象并发生战斗)
  74. )
  75. func IsNotAllowMarchType(marchType MarchType) bool {
  76. return marchType == MarchType_Retreat
  77. }
  78. // 撤退类型
  79. type RetreatType int32
  80. const (
  81. RetreatType_Retreat RetreatType = 0 // 撤退
  82. RetreatType_Rout RetreatType = 1 // 溃败
  83. RetreatType_Must RetreatType = 2 // 必定回城
  84. )
  85. func GetRetreatMarchState(retreatType RetreatType) MarchState {
  86. switch retreatType {
  87. case RetreatType_Rout:
  88. // 溃败返回溃败状态
  89. return MarchState_Rout
  90. }
  91. // 其他返回正常回城状态
  92. return MarchState_Retreat
  93. }
  94. // 自动攻城阶段
  95. type AutoSiegeStage int32
  96. const (
  97. AutoSiegeStage_None AutoSiegeStage = 0 // 无
  98. AutoSiegeStage_Wait AutoSiegeStage = 1 // 等待
  99. AutoSiegeStage_MainForce AutoSiegeStage = 2 // 主力出击
  100. AutoSiegeStage_SiegeSquad AutoSiegeStage = 3 // 拆迁队出击
  101. AutoSiegeStage_Siege AutoSiegeStage = 4 // 攻城
  102. )
  103. // 攻破类型
  104. type DestroyType int32
  105. const (
  106. DestroyType_None DestroyType = 0 // 无,属于殊特建筑,走特殊逻辑
  107. DestroyType_Remove DestroyType = 1 // 拆除
  108. DestroyType_Occupy DestroyType = 2 // 占领
  109. )
  110. // 建造类型
  111. type BuildType int32
  112. const (
  113. BuildType_None BuildType = 0 // 不可建造
  114. BuildType_League BuildType = 1 // 联盟可建造
  115. BuildType_Player BuildType = 2 // 玩家可建造
  116. )
  117. // 军团类型
  118. type LegionType int32
  119. const (
  120. LegionType_None LegionType = 0
  121. LegionType_Assemble LegionType = 1 // 集结军团
  122. LegionType_Entrust LegionType = 2 // 委托军团
  123. )
  124. // 军团状态
  125. type LegionState int32
  126. const (
  127. LegionState_None LegionState = 0 // 无
  128. LegionState_AssembleWait LegionState = 1 // 集结等待
  129. LegionState_AssembleFinish LegionState = 2 // 集结完成
  130. LegionState_AssembleMarch LegionState = 3 // 集结行军
  131. LegionState_BattleWait LegionState = 5 // 战斗等待
  132. LegionState_Crusade LegionState = 6 // 讨伐
  133. LegionState_Siege LegionState = 7 // 攻城
  134. )
  135. func GetLegionStateName(state LegionState) string {
  136. switch state {
  137. case LegionState_None:
  138. return "None"
  139. case LegionState_AssembleWait:
  140. return "AssembleWait"
  141. case LegionState_AssembleFinish:
  142. return "AssembleFinish"
  143. case LegionState_AssembleMarch:
  144. return "AssembleMarch"
  145. }
  146. return "Unknown"
  147. }
  148. // 领土类型
  149. type TileAreaType int32
  150. const (
  151. TileArea_None TileAreaType = 0 // 无主领地
  152. TileArea_System TileAreaType = 1 // 系统领地
  153. TileArea_League TileAreaType = 2 // 联盟领地
  154. )
  155. func NewObject(objectID int64, objectType ObjectType) *pb.I64I32 {
  156. return &pb.I64I32{
  157. Key: objectID,
  158. Value: int32(objectType),
  159. }
  160. }
  161. const (
  162. CampIndex_Start int32 = 1 // 营帐下标开始
  163. CampIndex_End int32 = 5 // 营帐下标结束
  164. )
  165. // 主城外观激活类型
  166. const (
  167. ShowActiveType_Facility int32 = 1 // 城建升级激活
  168. ShowActiveType_Item int32 = 2 // 道具激活
  169. )
  170. const (
  171. CitySubType_Other int32 = 0 // 其他
  172. CitySubType_County int32 = 1 // 县城
  173. CitySubType_Commandery int32 = 2 // 郡城
  174. CitySubType_StateCapital int32 = 3 // 州府
  175. )
  176. // 资源更新类型
  177. type ResUpdateType int32
  178. const (
  179. ResUpdate_Delete ResUpdateType = 0 // 删除
  180. ResUpdate_InLeagueArea ResUpdateType = 1 // 是否在联盟领地
  181. )
  182. // 加固阶段
  183. type ReinforceStage int32
  184. const (
  185. ReinforceStage_None ReinforceStage = 0 // 无
  186. ReinforceStage_Prepare ReinforceStage = 1 // 准备
  187. ReinforceStage_Effect ReinforceStage = 2 // 生效
  188. )
  189. var ReinforceStageNames = map[ReinforceStage]string{
  190. ReinforceStage_None: "None",
  191. ReinforceStage_Prepare: "Prepare",
  192. ReinforceStage_Effect: "Effect",
  193. }
  194. func GetReinforceStageName(stage ReinforceStage) string {
  195. return ReinforceStageNames[stage]
  196. }
  197. type AutoMarchStage int32
  198. const (
  199. AutoMarch_None AutoMarchStage = 0 // 无
  200. AutoMarch_Start AutoMarchStage = 1 // 开始
  201. AutoMarch_Wait AutoMarchStage = 2 // 等待
  202. AutoMarch_Process AutoMarchStage = 3 // 进行中
  203. )
  204. var autoMarchStageNames = map[AutoMarchStage]string{
  205. AutoMarch_None: "None",
  206. AutoMarch_Start: "Start",
  207. AutoMarch_Wait: "Wait",
  208. AutoMarch_Process: "Process",
  209. }
  210. func GetAutoMarchStageName(stage AutoMarchStage) string {
  211. return autoMarchStageNames[stage]
  212. }
  213. // 多重寻路类型
  214. type FindMultiPathType int32
  215. const (
  216. FindMultiPath_AllSuccess FindMultiPathType = 0 // 所有请求成功返回
  217. FindMultiPath_AnySuccess FindMultiPathType = 1 // 任意寻路成功返回
  218. FindMultiPath_SuccessOnly FindMultiPathType = 2 // 只返回成功路径
  219. )
  220. type AutoMarchType int32
  221. const (
  222. AutoMarch_WaitTimeout AutoMarchType = 0 // 等待超时
  223. AutoMarch_WaitGarrisionZero AutoMarchType = 1 // 等待驻城部队为空时
  224. )