item.go 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  1. package enum
  2. import (
  3. "slices"
  4. )
  5. type ItemUseType int32 // 道具池使用类型
  6. const (
  7. ItemUseRandom ItemUseType = 1 // 权重随机一项
  8. ItemUseGetAll ItemUseType = 2 // 获取全部
  9. ItemUseSelectOne ItemUseType = 3 // 玩家选择一项
  10. )
  11. // 货币类型的id
  12. const (
  13. ItemIDSilver int32 = 1 // 银币
  14. ItemIDGold int32 = 2 // 金币
  15. ItemIDF int32 = 3 // F币
  16. ItemIDStamina int32 = 5 // 精力
  17. ItemIDTempStamina int32 = 7 // 存储精力
  18. ItemIDWood int32 = 101 // 木材(绑定)
  19. ItemIDIron int32 = 102 // 铁矿(绑定)
  20. ItemIDStone int32 = 103 // 石料(绑定)
  21. ItemIDGrain int32 = 104 // 粮食(绑定)
  22. ItemIDWoodUnBound int32 = 111 // 木材
  23. ItemIDIronUnBound int32 = 112 // 铁矿
  24. ItemIDStoneUnBound int32 = 113 // 石料
  25. ItemIDGrainUnBound int32 = 114 // 粮食
  26. ItemIDSeasonPoint int32 = 1001 // 赛季积分
  27. ItemIDChargePoint int32 = 1003 // 充值积分
  28. ItemIDArm201 int32 = 201 // 民兵
  29. ItemIDArm202 int32 = 202 // 精锐兵1
  30. ItemIDArm203 int32 = 203 // 精锐兵2
  31. ItemIDArm204 int32 = 204 // 精锐兵3
  32. ItemIDArm205 int32 = 205 // 精锐兵4
  33. ItemIDArm206 int32 = 206 // 精锐兵5
  34. ItemIDLordExp int32 = 10001 // 领主经验
  35. ItemIDCrystalMine int32 = 10002 // 帝国晶矿
  36. ItemIDContribution int32 = 10102 // 个人贡献
  37. ItemIDFeat int32 = 10104 // 个人功勋
  38. )
  39. var (
  40. // 有上限货币道具ID列表
  41. ItemMaxNumList = []int32{
  42. ItemIDWoodUnBound,
  43. ItemIDIronUnBound,
  44. ItemIDStoneUnBound,
  45. ItemIDGrainUnBound,
  46. ItemIDWood,
  47. ItemIDIron,
  48. ItemIDStone,
  49. ItemIDGrain,
  50. }
  51. // 有上限的game货币
  52. GameItemMaxNumList = []int32{
  53. ItemIDStamina,
  54. ItemIDTempStamina,
  55. }
  56. ItemResUnboundList = []int32{
  57. ItemIDWoodUnBound,
  58. ItemIDIronUnBound,
  59. ItemIDStoneUnBound,
  60. ItemIDGrainUnBound,
  61. }
  62. // 后台需要展示的道具ID列表
  63. OpsItemInfoList = []int32{
  64. ItemIDSilver,
  65. ItemIDGold,
  66. ItemIDF,
  67. ItemIDStamina,
  68. ItemIDWoodUnBound,
  69. ItemIDIronUnBound,
  70. ItemIDStoneUnBound,
  71. ItemIDGrainUnBound,
  72. ItemIDWood,
  73. ItemIDIron,
  74. ItemIDStone,
  75. ItemIDGrain,
  76. }
  77. // TOD 暂时先这里处理 Map currency id list
  78. MapCurrencyIDList = []int32{
  79. ItemIDWood,
  80. ItemIDIron,
  81. ItemIDStone,
  82. ItemIDGrain,
  83. ItemIDWoodUnBound,
  84. ItemIDIronUnBound,
  85. ItemIDStoneUnBound,
  86. ItemIDGrainUnBound,
  87. ItemIDArm201,
  88. ItemIDArm202,
  89. ItemIDArm203,
  90. ItemIDArm204,
  91. ItemIDArm205,
  92. ItemIDArm206,
  93. ItemIDSeasonPoint,
  94. ItemIDFeat,
  95. }
  96. // 个人货币转换为联盟货币(交税映射)
  97. RatioConvertMap = map[int32]int32{
  98. ItemIDWood: LeagueItemIDWood,
  99. ItemIDIron: LeagueItemIDIron,
  100. ItemIDStone: LeagueItemIDStone,
  101. ItemIDGrain: LeagueItemIDGrain,
  102. ItemIDF: LeagueItemIDF,
  103. }
  104. // 地图侦察资源列表
  105. MapScoutItemIDList = []int32{
  106. ItemIDWoodUnBound,
  107. ItemIDIronUnBound,
  108. ItemIDStoneUnBound,
  109. ItemIDGrainUnBound,
  110. }
  111. // 绑定资源和非绑定资源的映射
  112. BindingResourceMap = map[int32]int32{
  113. ItemIDWood: ItemIDWoodUnBound,
  114. ItemIDIron: ItemIDIronUnBound,
  115. ItemIDStone: ItemIDStoneUnBound,
  116. ItemIDGrain: ItemIDGrainUnBound,
  117. }
  118. // 非绑定资源和绑定资源的映射
  119. UnBindingResourceMap = map[int32]int32{
  120. ItemIDWoodUnBound: ItemIDWood,
  121. ItemIDIronUnBound: ItemIDIron,
  122. ItemIDStoneUnBound: ItemIDStone,
  123. ItemIDGrainUnBound: ItemIDGrain,
  124. }
  125. // 绑定资源产出的映射
  126. MapItemAttrs = map[int32]int32{
  127. ItemIDWood: AttrWoodYield,
  128. ItemIDIron: AttrIronYield,
  129. ItemIDStone: AttrStoneYield,
  130. ItemIDGrain: AttrGrainYield,
  131. }
  132. )
  133. const (
  134. GenPoolTimeType_Hour int32 = 1 // 每小时
  135. GenPoolTimeType_Day int32 = 2 // 每天
  136. GenPoolTimeType_Week int32 = 3 // 每周
  137. GenPoolTimeType_Month int32 = 4 // 每月
  138. )
  139. var (
  140. MedicineType_Energy int32 = 1 // 体力药
  141. MedicineType_Troops int32 = 2 // 补兵药
  142. MedicineType_Injured int32 = 3 // 重伤药
  143. )
  144. // 判断是否是地图货币
  145. func IsMapCurrency(id int32) bool {
  146. return slices.Contains(MapCurrencyIDList, id)
  147. }
  148. // 获取交税联盟映射
  149. func GetLeagueRatioItemID(id int32) (int32, bool) {
  150. leagueItemID, found := RatioConvertMap[id]
  151. return leagueItemID, found
  152. }