HeroSkinLogic.lua 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  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 GC_SKIN_QUERY = 14
  8. local function genSkinUnit(human,id)
  9. local cfg = HeroSkinExcel[id]
  10. local buyCfg = BuyExcel[cfg.buyId]
  11. local region = human.region or "THA"
  12. local buyItem = {
  13. buyID = cfg.buyID,
  14. region = region,
  15. cost = buyCfg[region],
  16. icon = buyCfg.icon,
  17. name = buyCfg.name,
  18. desc = buyCfg.desc,
  19. yuanjia = buyCfg.oCN,
  20. zhekou = buyCfg.zhekou,
  21. ttl = cfg.ttl,
  22. }
  23. local skinId = cfg.content[1]
  24. local skinCfg = SkinExcel[skinId]
  25. local attrs = {}
  26. for _,v in pairs(skinCfg.attrs) do
  27. attrs[#attrs + 1] = {
  28. key = v[1],
  29. value = v[2],
  30. }
  31. end
  32. return {
  33. id = id,
  34. buyItem = buyItem,
  35. skinData = {
  36. Id = skinId,
  37. attrs = attrs
  38. },
  39. }
  40. end
  41. -----------------------------------------
  42. function query(human,panelId)
  43. local ret = {}
  44. for _,cfg in pairs(HeroSkinExcel) do
  45. if cfg.panelId == panelId then
  46. ret[#ret+1] = genSkinUnit()
  47. end
  48. end
  49. return {
  50. list = ret
  51. }
  52. end
  53. function buy(human,buyId)
  54. local skinCfg
  55. for id,cfg in pairs(HeroSkinExcel) do
  56. if cfg.buyId == buyId then
  57. skinCfg = cfg
  58. break
  59. end
  60. end
  61. assert(skinCfg,"invalid buyId")
  62. return BagLogic.addItemList(human,skinCfg.content,"skin_buy")
  63. end