EquipLogicGrid.lua 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  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 createGrid(id)
  44. local equipCfg = EquipExcel[id]
  45. if not equipCfg then
  46. assert()
  47. return
  48. end
  49. local equip = {}
  50. equip.id = id
  51. equip.uuid = lua_mongo.id() --唯一标识
  52. equip.attr = nil --当前属性
  53. equip.skill = nil
  54. equip.quality = 1 --默认为1
  55. equip.putUuid = nil --装备者
  56. equip.washAttr = nil --当前洗练属性
  57. equip.washQuality = nil --当前洗练品质
  58. if equipCfg.subType == ItemDefine.EQUIP_SUBTYPE_RING or equipCfg.subType == ItemDefine.EQUIP_SUBTYPE_AMULET then
  59. equip.quality = equipCfg.quality
  60. equip.baseAttr = generateNewBaseAttr(id)
  61. end
  62. return equip
  63. end
  64. --
  65. function createTempGrid(id, washAttr, washQuality)
  66. if not EquipExcel[id] then
  67. assert()
  68. return
  69. end
  70. local equip = {}
  71. equip.id = id
  72. equip.attr = washAttr --当前属性
  73. equip.quality = washQuality --默认为1
  74. return equip
  75. end