UICardBlessTipsCtr.lua 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. local UICardBlessTipsCtr = class("UICardBlessTipsCtr", require("UICtrBase"))
  2. function UICardBlessTipsCtr:Init(view)
  3. self.view = view
  4. end
  5. function UICardBlessTipsCtr:SetData(data)
  6. self.asyncIdx = 0
  7. if data == nil then return end
  8. self.data = data
  9. end
  10. function UICardBlessTipsCtr:GetAsyncIdx()
  11. self.asyncIdx = self.asyncIdx + 1
  12. return self.asyncIdx
  13. end
  14. function UICardBlessTipsCtr:GetData()
  15. return self.data
  16. end
  17. function UICardBlessTipsCtr:GetCurLv()
  18. return self.data.curLv
  19. end
  20. function UICardBlessTipsCtr:GetSuitCount()
  21. return self.data.count, self.data.totalCount
  22. end
  23. function UICardBlessTipsCtr:GetState()
  24. return self.data.state
  25. end
  26. function UICardBlessTipsCtr:GetSlot()
  27. return self.data.slot
  28. end
  29. function UICardBlessTipsCtr:GetCurCardSuitLv()
  30. local curLv = self:GetCurLv()
  31. local allCfgDatas = ManagerContainer.CfgMgr:GetAllCardSuitNewCfg()
  32. local isMax = curLv == #allCfgDatas
  33. return curLv, isMax
  34. end
  35. function UICardBlessTipsCtr:GetSatisfyCardCountByLv(lv)
  36. local slot = self:GetSlot()
  37. local equipedCards = {}
  38. for _,v in pairs(slot.slot_list) do
  39. local cardList = v.card_id_list
  40. for _,v1 in pairs(cardList) do
  41. if v1 and v1 > 0 then
  42. equipedCards[#equipedCards + 1] = v1
  43. end
  44. end
  45. end
  46. local cfgData = ManagerContainer.CfgMgr:GetCardSuitNewCfgById(lv)
  47. local enoughCount = {}
  48. local count = {}
  49. for j = #cfgData.TriggerConditions, 1, -1 do
  50. local condition = cfgData.TriggerConditions[j]
  51. local type = condition[1]
  52. local lv = condition[2]
  53. local num = condition[3]
  54. enoughCount[j] = num
  55. if not count[j] then
  56. count[j] = 0
  57. end
  58. for i = #equipedCards, 1, -1 do
  59. local cfgId = equipedCards[i]
  60. local cardCfgData = ManagerContainer.CfgMgr:GetCardDataById(cfgId)
  61. if cardCfgData and cardCfgData.CardType >= type and cardCfgData.CardLevel >= lv then
  62. count[j] = count[j] + 1
  63. table.remove(equipedCards, i)
  64. if count[j] >= enoughCount[j] then
  65. break
  66. end
  67. end
  68. end
  69. count[j] = math.min(count[j], enoughCount[j])
  70. end
  71. return enoughCount, count
  72. end
  73. function UICardBlessTipsCtr:OnDispose()
  74. self.data = nil
  75. self.view = nil
  76. end
  77. return UICardBlessTipsCtr