ChipDecomposeItemCtr.lua 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. local ChipDecomposeItemCtr = {}
  2. function ChipDecomposeItemCtr:SetData(wnd, itemlua, logicData)
  3. local cfgId = logicData.cfgId
  4. local num = logicData.num
  5. local cost = logicData.cost or 0
  6. local itemCfgData = ManagerContainer.CfgMgr:GetItemById(cfgId)
  7. if itemCfgData.Icon and itemCfgData.Icon ~= '' then
  8. CommonUtil.LoadIcon(wnd, itemCfgData.Icon, function (sprite)
  9. itemlua.icon.image.sprite = sprite
  10. end)
  11. end
  12. local quality = itemCfgData.Quality
  13. CommonUtil.LoadIcon(wnd, Constant.Quality_Chip_Frame_Icons[quality], function (sprite)
  14. itemlua.frame.image.sprite = sprite
  15. end)
  16. local composeItem = itemCfgData.ComposeItem
  17. local multi = false
  18. local parterId = nil
  19. if composeItem and #composeItem > 0 then
  20. if type(composeItem[1]) == 'number' then
  21. -- 单个
  22. parterId = composeItem[1]
  23. else
  24. -- 多个
  25. parterId = composeItem[1][1]
  26. multi = true
  27. end
  28. end
  29. local parterCfgData = ManagerContainer.CfgMgr:GetPartnerDataById(parterId)
  30. local natureData = ManagerContainer.CfgMgr:GetNatureDataById(parterCfgData.NatureId)
  31. CommonUtil.LoadIcon(wnd, natureData.Icon, function (sprite)
  32. itemlua.natureIcon.image.sprite = sprite
  33. end)
  34. itemlua.number.text.text.text = cost .. '/' .. num
  35. itemlua.btnRemove:SetActive(cost ~= 0)
  36. local add = function(idx, isOver)
  37. logicData.cost = logicData.cost or 0
  38. if logicData.cost < logicData.num then
  39. if isOver then
  40. logicData.cost = logicData.num
  41. else
  42. logicData.cost = logicData.cost + 1
  43. end
  44. itemlua.number.text.text.text = logicData.cost .. '/' .. logicData.num
  45. itemlua.btnRemove:SetActive(logicData.cost ~= 0)
  46. end
  47. end
  48. local remove = function(idx, isOver)
  49. logicData.cost = logicData.cost or 0
  50. if logicData.cost > 0 then
  51. if isOver then
  52. logicData.cost = 0
  53. else
  54. logicData.cost = logicData.cost - 1
  55. end
  56. itemlua.number.text.text.text = logicData.cost .. '/' .. logicData.num
  57. itemlua.btnRemove:SetActive(logicData.cost ~= 0)
  58. end
  59. end
  60. itemlua.bg.repeatButton:AddRepeatClickEventListener(add)
  61. itemlua.btnRemove.repeatButton:AddRepeatClickEventListener(remove)
  62. end
  63. return ChipDecomposeItemCtr