map.go 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234
  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. )
  16. const (
  17. ObjectType_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_Siege: "Siege",
  37. MarchType_Redeploy: "Redeploy",
  38. MarchType_Retreat: "Retreat",
  39. MarchType_Assemble: "Assemble",
  40. MarchType_Entrust: "Entrust",
  41. MarchType_LegionAssemble: "LegionAssemble",
  42. }
  43. )
  44. func GetObjectTypeName(objectType ObjectType) string {
  45. if val, found := objectTypeName[objectType]; found {
  46. return val
  47. }
  48. return ObjectType_Unknow
  49. }
  50. func GetMarchTypeName(marchType MarchType) string {
  51. if val, found := marchTypeName[marchType]; found {
  52. return val
  53. }
  54. return "unknown"
  55. }
  56. // 行军类型
  57. type MarchType int32
  58. const (
  59. MarchType_Unknow MarchType = 0 // 未知
  60. MarchType_Stay MarchType = 1 // 行军-停留
  61. MarchType_Occupy MarchType = 2 // 行军-占领
  62. MarchType_Crucade MarchType = 3 // 行军-讨伐
  63. MarchType_Garrison MarchType = 4 // 行军-驻守
  64. MarchType_Siege MarchType = 7 // 行军-攻城
  65. MarchType_Redeploy MarchType = 8 // 行军-调动
  66. MarchType_Retreat MarchType = 9 // 行军-撤退
  67. MarchType_Assemble MarchType = 10 // 行军-集结(指令用于部队行军之后加入军团)
  68. MarchType_Entrust MarchType = 11 // 行军-委托
  69. MarchType_Snatch MarchType = 12 // 行军-掠夺
  70. MarchType_SiegeAssemble MarchType = 13 // 行军-攻城集结
  71. MarchType_LegionAssemble MarchType = 14 // 行军-军团集结(指令用军团行军到集结对象并发生战斗)
  72. )
  73. func IsNotAllowMarchType(marchType MarchType) bool {
  74. return marchType == MarchType_Retreat
  75. }
  76. // 撤退类型
  77. type RetreatType int32
  78. const (
  79. RetreatType_Retreat RetreatType = 0 // 撤退
  80. RetreatType_Rout RetreatType = 1 // 溃败
  81. RetreatType_Must RetreatType = 2 // 必定回城
  82. )
  83. func GetRetreatMarchState(retreatType RetreatType) MarchState {
  84. switch retreatType {
  85. case RetreatType_Rout:
  86. // 溃败返回溃败状态
  87. return MarchState_Rout
  88. }
  89. // 其他返回正常回城状态
  90. return MarchState_Retreat
  91. }
  92. // 自动攻城阶段
  93. type AutoSiegeStage int32
  94. const (
  95. AutoSiegeStage_None AutoSiegeStage = 0 // 无
  96. AutoSiegeStage_Wait AutoSiegeStage = 1 // 等待
  97. AutoSiegeStage_MainForce AutoSiegeStage = 2 // 主力出击
  98. AutoSiegeStage_SiegeSquad AutoSiegeStage = 3 // 拆迁队出击
  99. AutoSiegeStage_Siege AutoSiegeStage = 4 // 攻城
  100. )
  101. // 攻破类型
  102. type DestroyType int32
  103. const (
  104. DestroyType_None DestroyType = 0 // 无,属于殊特建筑,走特殊逻辑
  105. DestroyType_Remove DestroyType = 1 // 拆除
  106. DestroyType_Occupy DestroyType = 2 // 占领
  107. )
  108. // 建造类型
  109. type BuildType int32
  110. const (
  111. BuildType_None BuildType = 0 // 不可建造
  112. BuildType_League BuildType = 1 // 联盟可建造
  113. BuildType_Player BuildType = 2 // 玩家可建造
  114. )
  115. // 军团类型
  116. type LegionType int32
  117. const (
  118. LegionType_None LegionType = 0
  119. LegionType_Assemble LegionType = 1 // 集结军团
  120. LegionType_Entrust LegionType = 2 // 委托军团
  121. )
  122. // 军团状态
  123. type LegionState int32
  124. const (
  125. LegionState_None LegionState = 0 // 无
  126. LegionState_AssembleWait LegionState = 1 // 集结等待
  127. LegionState_AssembleFinish LegionState = 2 // 集结完成
  128. LegionState_AssembleMarch LegionState = 3 // 集结行军
  129. LegionState_BattleWait LegionState = 5 // 战斗等待
  130. LegionState_Crusade LegionState = 6 // 讨伐
  131. LegionState_Siege LegionState = 7 // 攻城
  132. )
  133. func GetLegionStateName(state LegionState) string {
  134. switch state {
  135. case LegionState_None:
  136. return "None"
  137. case LegionState_AssembleWait:
  138. return "AssembleWait"
  139. case LegionState_AssembleFinish:
  140. return "AssembleFinish"
  141. case LegionState_AssembleMarch:
  142. return "AssembleMarch"
  143. }
  144. return "Unknown"
  145. }
  146. // 领土类型
  147. type TileAreaType int32
  148. const (
  149. TileArea_None TileAreaType = 0 // 无主领地
  150. TileArea_System TileAreaType = 1 // 系统领地
  151. TileArea_League TileAreaType = 2 // 联盟领地
  152. )
  153. func NewObject(objectID int64, objectType ObjectType) *pb.I64I32 {
  154. return &pb.I64I32{
  155. Key: objectID,
  156. Value: int32(objectType),
  157. }
  158. }
  159. const (
  160. CampIndex_Start int32 = 1 // 营帐下标开始
  161. CampIndex_End int32 = 5 // 营帐下标结束
  162. )
  163. // 主城外观激活类型
  164. const (
  165. ShowActiveType_Facility int32 = 1 // 城建升级激活
  166. ShowActiveType_Item int32 = 2 // 道具激活
  167. )
  168. const (
  169. CitySubType_Other int32 = 0 // 其他
  170. CitySubType_County int32 = 1 // 县城
  171. CitySubType_Commandery int32 = 2 // 郡城
  172. CitySubType_StateCapital int32 = 3 // 州府
  173. )
  174. // 资源更新类型
  175. type ResUpdateType int32
  176. const (
  177. ResUpdate_Delete ResUpdateType = 0 // 删除
  178. ResUpdate_InLeagueArea ResUpdateType = 1 // 是否在联盟领地
  179. )
  180. // 加固阶段
  181. type ReinforceStage int32
  182. const (
  183. ReinforceStage_None ReinforceStage = 0 // 无
  184. ReinforceStage_Prepare ReinforceStage = 1 // 准备
  185. ReinforceStage_Effect ReinforceStage = 2 // 生效
  186. )
  187. var ReinforceStageNames = map[ReinforceStage]string{
  188. ReinforceStage_None: "None",
  189. ReinforceStage_Prepare: "Prepare",
  190. ReinforceStage_Effect: "Effect",
  191. }
  192. func GetReinforceStageName(stage ReinforceStage) string {
  193. return ReinforceStageNames[stage]
  194. }