EquipLogicGrid.lua 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. local lua_mongo = _G.lua_mongo
  2. -- local Msg = require("core.Msg")
  3. -- local Util = require("common.Util")
  4. -- local Grid = require("bag.Grid")
  5. -- local ItemDefine = require("bag.ItemDefine")
  6. local EquipExcel = require("excel.equip").equip
  7. -- local EquipLogic = require("equip.EquipLogic")
  8. local ItemDefine = require("bag.ItemDefine")
  9. local Util = require("common.Util")
  10. -- 装备品质
  11. EQUIP_COLOR_1 = 1 -- 绿
  12. EQUIP_COLOR_2 = 2 -- 蓝
  13. EQUIP_COLOR_3 = 3 -- 紫
  14. EQUIP_COLOR_4 = 4 -- 橙
  15. EQUIP_COLOR_5 = 5 -- 红
  16. -- 装备洗练时, 品质权重
  17. EQUIPWASH_COLOR_WEIGHT = {
  18. [EQUIP_COLOR_1] = 30,
  19. [EQUIP_COLOR_2] = 25,
  20. [EQUIP_COLOR_3] = 20,
  21. [EQUIP_COLOR_4] = 15,
  22. [EQUIP_COLOR_5] = 10,
  23. }
  24. -- 装备洗练时, 品质与属性值的倍数范围(需要除以100)
  25. EQUIPWASH_COLOR_MUL = {
  26. [EQUIP_COLOR_1] = {61, 75},
  27. [EQUIP_COLOR_2] = {76, 90},
  28. [EQUIP_COLOR_3] = {91, 105},
  29. [EQUIP_COLOR_4] = {106, 120},
  30. [EQUIP_COLOR_5] = {121, 135},
  31. }
  32. -- 生成戒指、护符的基础属性的最终值
  33. local function generateNewBaseAttr(equipId)
  34. local equipCfg = EquipExcel[equipId]
  35. local baseAttr = Util.copyTable(equipCfg.base)
  36. local randMul = math.random(equipCfg.randomseed[1][1], equipCfg.randomseed[1][2])
  37. for _, attrInfo in ipairs(baseAttr) do
  38. attrInfo[2] = math.floor(attrInfo[2] * randMul / 100)
  39. end
  40. return baseAttr
  41. end
  42. -- 生成装备基础属性的随机加成值
  43. function GenEquipBaseRandomVal(equipId)
  44. local val = 1
  45. local equipCfg = EquipExcel[equipId]
  46. if equipCfg and equipCfg.baserandom then
  47. local valAreaTb = equipCfg.baserandom[1]
  48. local minVal = (valAreaTb[1] or 1) * 100
  49. local maxVal = (valAreaTb[2] or 1) * 100
  50. val = math.random(minVal, maxVal)
  51. val = val / 100
  52. end
  53. return val
  54. end
  55. -- 创建装备
  56. function createGrid(id)
  57. local equipCfg = EquipExcel[id]
  58. if not equipCfg then
  59. assert()
  60. return
  61. end
  62. local equip = {}
  63. equip.id = id
  64. equip.uuid = lua_mongo.id() --唯一标识
  65. equip.attr = nil --当前属性
  66. equip.skill = nil
  67. equip.quality = 1 --默认为1
  68. equip.putUuid = nil --装备者
  69. equip.washAttr = nil --当前洗练属性
  70. equip.washQuality = nil --当前洗练品质
  71. equip.baseRandVal = GenEquipBaseRandomVal(id)
  72. if equipCfg.subType == ItemDefine.EQUIP_SUBTYPE_RING or equipCfg.subType == ItemDefine.EQUIP_SUBTYPE_AMULET then
  73. equip.quality = equipCfg.quality
  74. equip.baseAttr = generateNewBaseAttr(id)
  75. end
  76. return equip
  77. end
  78. --
  79. function createTempGrid(id, washAttr, washQuality)
  80. if not EquipExcel[id] then
  81. assert()
  82. return
  83. end
  84. local equip = {}
  85. equip.id = id
  86. equip.attr = washAttr --当前属性
  87. equip.quality = washQuality --默认为1
  88. return equip
  89. end