HeroSkinLogic.lua 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. --- 英雄皮肤
  2. local Grid = require("bag.Grid")
  3. local BuyExcel = require("excel.buy").buy
  4. local BagLogic = require("bag.BagLogic")
  5. local HeroSkinExcel = require("excel.present").heroSkin
  6. local SkinExcel = require("excel.skin").skin
  7. local SkinLogic = require("skin.SkinLogic")
  8. local HeadFrameExcel = require("excel.role").headFrame
  9. local GC_SKIN_QUERY = 14
  10. local function genSkinUnit(human,id)
  11. local cfg = HeroSkinExcel[id]
  12. local buyCfg = BuyExcel[cfg.buyId]
  13. local region = human.region or "THA"
  14. local buyItem = {
  15. buyID = cfg.buyID,
  16. region = region,
  17. cost = buyCfg[region],
  18. icon = buyCfg.icon,
  19. name = buyCfg.name,
  20. desc = buyCfg.desc,
  21. yuanjia = buyCfg.oCN,
  22. zhekou = buyCfg.zhekou,
  23. ttl = cfg.ttl,
  24. }
  25. local skinId = cfg.content[1]
  26. local skinCfg = SkinExcel[skinId]
  27. local attrs = {}
  28. for _,v in pairs(skinCfg.attrs) do
  29. attrs[#attrs + 1] = {
  30. key = v[1],
  31. value = v[2],
  32. }
  33. end
  34. local iconframeId = cfg.content[2]
  35. local iconframeCfg = HeadFrameExcel[iconframeId]
  36. local headNet = {}
  37. headNet.id = iconframeId
  38. headNet.desc = iconframeCfg.desc or ""
  39. headNet.keepTime = iconframeCfg.keepTime
  40. headNet.name = iconframeCfg.name or ""
  41. headNet.camp = iconframeCfg.camp or 0
  42. local len = #iconframeCfg.attrs
  43. headNet.attrs = {}
  44. for i = 1,len do
  45. headNet.attrs[i].key = iconframeCfg.attrs[i][1]
  46. headNet.attrs[i].value = iconframeCfg.attrs[i][2]
  47. end
  48. return {
  49. id = id,
  50. buyItem = buyItem,
  51. skinData = {
  52. Id = skinId,
  53. attrs = attrs
  54. },
  55. Iconframe = headNet
  56. }
  57. end
  58. -----------------------------------------
  59. function query(human,panelId)
  60. local ret = {}
  61. for id,cfg in pairs(HeroSkinExcel) do
  62. if cfg.panelId == panelId then
  63. ret[#ret+1] = genSkinUnit(human,id)
  64. end
  65. end
  66. return {
  67. list = ret
  68. }
  69. end
  70. function buy(human,buyId)
  71. local skinCfg
  72. for _,cfg in pairs(HeroSkinExcel) do
  73. if cfg.buyId == buyId then
  74. skinCfg = cfg
  75. break
  76. end
  77. end
  78. assert(skinCfg,"invalid buyId")
  79. return SkinLogic.skinUnlock(human,skinCfg.content[1]) --BagLogic.addItemList(human,skinCfg.content,"skin_buy")
  80. end