UIFashionComposeCtr.lua 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. local UIFashionComposeCtr = class("UIFashionComposeCtr", require("UICtrBase"))
  2. function UIFashionComposeCtr:Init(view)
  3. self.view = view
  4. end
  5. function UIFashionComposeCtr:SetData(data)
  6. self.asyncIdx = 0
  7. if data == nil then return end
  8. self.data = data
  9. -- 初始化数据
  10. end
  11. function UIFashionComposeCtr:GetAsyncIdx()
  12. self.asyncIdx = self.asyncIdx + 1
  13. return self.asyncIdx
  14. end
  15. function UIFashionComposeCtr:GetData()
  16. return self.data
  17. end
  18. function UIFashionComposeCtr:OnDispose()
  19. self.data = nil
  20. self.view = nil
  21. end
  22. function UIFashionComposeCtr:GetCfgId()
  23. return self.data.cfgId
  24. end
  25. --- 是否能制作时装的错误判断
  26. ---@return integer 0:可以制作;1:金币不足;2:钻石不足;3:道具不足;4:已拥有
  27. function UIFashionComposeCtr:GetErrorCode()
  28. local fashionPaperCfgData = ManagerContainer.CfgMgr:GetFashionPaperById(self:GetCfgId())
  29. local owned = ManagerContainer.DataMgr.FashionData:Contains(fashionPaperCfgData.FashionId)
  30. if owned then
  31. return 4
  32. end
  33. local makeMaterial = fashionPaperCfgData.MakeMaterial
  34. if type(makeMaterial[1]) == 'number' then
  35. makeMaterial = {makeMaterial}
  36. end
  37. local materialCfgId = nil
  38. local materialNum = nil
  39. for i = 1, #makeMaterial do
  40. materialCfgId = makeMaterial[i][1]
  41. materialNum = makeMaterial[i][2]
  42. local materialItemCfgData = ManagerContainer.CfgMgr:GetItemById(materialCfgId)
  43. if materialItemCfgData.ResType == Enum.ItemType.Coin then
  44. if ManagerContainer.DataMgr.UserData:GetOwnCoin() < materialNum then
  45. return 1
  46. end
  47. elseif materialItemCfgData.ResType == Enum.ItemType.Diamond then
  48. if ManagerContainer.DataMgr.UserData:GetOwnDiamond() < materialNum then
  49. return 2
  50. end
  51. else
  52. if ManagerContainer.DataMgr.BagData:GetItemCountByCfgId(materialCfgId) < materialNum then
  53. return 3
  54. end
  55. end
  56. end
  57. return 0
  58. end
  59. function UIFashionComposeCtr:SendCompose()
  60. ManagerContainer.NetManager:SendMessage(ProtoMsgId.CS_FASHION_COMPOSE_REQ, {paper_cfg_id = self:GetCfgId()})
  61. end
  62. return UIFashionComposeCtr