源战役客户端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

94 line
2.3 KiB

  1. FuliLevelView = FuliLevelView or BaseClass(BaseItem)
  2. local FuliLevelView = FuliLevelView
  3. function FuliLevelView:__init()
  4. self.base_file = "fuli"
  5. self.layout_file = "FuliLevelView"
  6. self.model = FuliModel:GetInstance()
  7. self.mainVo = RoleManager.Instance.mainRoleInfo
  8. self:Load()
  9. end
  10. function FuliLevelView:Load_callback()
  11. self.nodes = {
  12. "item_scroll/Viewport/item_con","item_scroll","Text_1:tmp",
  13. }
  14. self:GetChildren(self.nodes)
  15. self.Text_1_tmp.text = "<color=#fdffc2>“贵重奖励”</color>有<color=#fdffc2>限量</color>份数哦,先到先得!"
  16. self:AddEvents()
  17. if self.need_refreshData then
  18. self:UpdateView()
  19. end
  20. end
  21. function FuliLevelView:AddEvents( )
  22. local function on_update_view( )
  23. self:UpdateView()
  24. end
  25. self.on_update_view_id = self.model:BindOne("fuli_level_info", on_update_view)
  26. end
  27. function FuliLevelView:UpdateView( )
  28. self.cfg = DeepCopy(self.model:GetFuliLevelCFG(self.mainVo.career))
  29. local level = self.mainVo.level
  30. for i,v in ipairs(self.cfg) do
  31. v.is_get = self.model:IsFuliLevelGet(v.id)
  32. v.can_get = level >= v.level
  33. if v.can_get and not v.is_get then--可以领且没有领
  34. v.sort_rank = 2
  35. elseif v.can_get and v.is_get then--领了
  36. v.sort_rank = 0
  37. else
  38. v.sort_rank = 1
  39. end
  40. end
  41. local sort_func = function ( a, b )
  42. if a.sort_rank == b.sort_rank then
  43. return a.id < b.id
  44. else
  45. return a.sort_rank > b.sort_rank
  46. end
  47. end
  48. table.sort(self.cfg, sort_func)
  49. if not self.item_list_com then
  50. self.item_list_com = self:AddUIComponent(UI.ItemListCreator)
  51. end
  52. -- self.item_list_com:Reset()
  53. local info = {
  54. data_list = self.cfg,
  55. item_con = self.item_con,
  56. item_class = FuliLevelItem,
  57. item_height = FuliLevelItem.Height,
  58. space_y = 6,
  59. start_x = 1,
  60. start_y = -1,
  61. reuse_item_num = 10,
  62. scroll_view = self.item_scroll,
  63. create_frequency = 0.02,
  64. is_scroll_back_on_update = false,
  65. on_update_item = function(item, i, v)
  66. item:SetData(i, v)
  67. end,
  68. }
  69. self.item_list_com:UpdateItems(info)
  70. end
  71. function FuliLevelView:SetData( data )
  72. self.data = data
  73. if self.is_loaded then
  74. self.need_refreshData = false
  75. self:UpdateView()
  76. else
  77. self.need_refreshData = true
  78. end
  79. end
  80. function FuliLevelView:__delete( )
  81. if self.on_update_view_id then
  82. self.model:UnBind(self.on_update_view_id)
  83. self.on_update_view_id = nil
  84. end
  85. end