源战役客户端
Du kannst nicht mehr als 25 Themen auswählen Themen müssen entweder mit einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

136 Zeilen
5.0 KiB

  1. -- <*
  2. -- @Author: Saber
  3. -- @Description: 社团红包item
  4. -- *>
  5. GuildRedPacketItem = GuildRedPacketItem or BaseClass(BaseItem)
  6. local GuildRedPacketItem = GuildRedPacketItem
  7. function GuildRedPacketItem:__init(parent_wnd,prefab_asset,layer_name)
  8. self.base_file = "redPacket"
  9. self.layout_file = "GuildRedPacketItem"
  10. self.parent_wnd = parent_wnd
  11. self.layer_name = layer_name
  12. self.redpacket_id = 0 -- 红包唯一id
  13. self.redpacket_cfg_id = 0 -- 红包配置id
  14. self.model = RedPacketModel:GetInstance()
  15. self:Load()
  16. end
  17. function GuildRedPacketItem:Load_callback()
  18. self.nodes = {
  19. "get_btn:obj:imgex", "get_btn/get_flag:imgex",
  20. "head_con",
  21. "desc1:tmp", "desc2:tmp",
  22. }
  23. self:GetChildren(self.nodes)
  24. self.role_head = HeadRoleItem.New(self.head_con)
  25. self.role_head:SetItemSize(70, 70)
  26. self.role_head:SetAnchoredPosition(0, 0)
  27. self:AddEvents()
  28. if self.need_refreshData then
  29. self:UpdateView()
  30. end
  31. end
  32. function GuildRedPacketItem:AddEvents( )
  33. local function click_event(target)
  34. if target == self.get_btn_obj or target == self.gameObject then
  35. if self.data and self.data.id then
  36. if self.data.status == 0 then --发红包
  37. self.model:Fire(RedPacketModel.REQUEST_CCMD_EVENT,33909,self.data.id)
  38. else --领红包、看红包
  39. self.model:Fire(RedPacketModel.REQUEST_CCMD_EVENT,33902,self.data.id)
  40. -- if self.model:IsGuildRedPacketInLimit() then
  41. -- Message.show("当日领取红包次数已达上限")
  42. -- else
  43. -- end
  44. end
  45. end
  46. end
  47. end
  48. AddClickEvent(self.get_btn_obj, click_event)
  49. AddClickEvent(self.gameObject, click_event)
  50. end
  51. function GuildRedPacketItem:UpdateView( )
  52. if self.data then
  53. -- 红包id相关
  54. self.redpacket_id = self.data.id
  55. self.redpacket_cfg_id = self.data.packet_id
  56. -- 红包发起人头像级描述信息
  57. local head_data = {
  58. vo = {
  59. id = self.data.role_id,
  60. -- server_id = self.data.ser_id or 0,
  61. career = self.data.career,
  62. sex = self.data.sex,
  63. turn = self.data.turn,
  64. picture_ver = self.data.picture_ver,
  65. picture = self.data.picture,
  66. profile_photo_id = self.data.profile_photo_id,
  67. dress_board_id = self.data.dress_id,
  68. level = self.data.lv,
  69. use_bg = 2
  70. },
  71. show_tip = false,
  72. }
  73. self.role_head:SetData(head_data)
  74. -- 红包描述
  75. local red_packet_cfg = Config.Redpacket[self.redpacket_cfg_id]
  76. self.desc1_tmp.text = string.format("金主:<color=#ffec96>%s</color>", self.data.role_name)
  77. self.desc2_tmp.text = Trim(red_packet_cfg.greetings)
  78. -- 根据红包领取情况加载按钮状态
  79. self.get_btn_imgex.gray = false
  80. local icon_res, btn_gray = "guild_red_open_pointfilter", false -- 按钮资源和灰化
  81. -- if self.data.has_look == 0 then -- 被处理为未查看的红包(上线后的新红包)
  82. -- icon_res = "guild_red_open_pointfilter"
  83. -- btn_gray = false
  84. -- elseif self.data.has_look == 1 then -- 旧红包
  85. if self.data.status == 0 then -- 还没发的红包,置顶
  86. icon_res = "guild_red_send_pointfilter"
  87. btn_gray = false
  88. elseif self.data.status == 1 then -- 发出去的红包,收到协议时未领完
  89. if self.data.receive_status == 3 then -- 已经领了的
  90. icon_res = "guild_red_claimed_pointfilter"
  91. elseif self.data.receive_status == 2 then -- 领不到了
  92. icon_res = "guild_red_missed_pointfilter"
  93. elseif self.data.receive_status == 1 then -- 还能领
  94. icon_res = "guild_red_open_pointfilter"
  95. end
  96. btn_gray = self.data.receive_status ~= 1
  97. elseif self.data.status == 2 then -- 已领完
  98. if self.data.receive_status == 3 then -- 已经领了的
  99. icon_res = "guild_red_claimed_pointfilter"
  100. btn_gray = true
  101. else
  102. icon_res = "guild_red_missed_pointfilter"
  103. btn_gray = true
  104. end
  105. end
  106. -- end
  107. lua_resM:setImageSprite(self, self.get_flag_imgex, "redPacket_asset", icon_res, true)
  108. self.get_flag_imgex.gray = btn_gray
  109. self.get_btn_imgex.gray = btn_gray
  110. end
  111. end
  112. function GuildRedPacketItem:SetData( data )
  113. self.data = data
  114. if self.is_loaded then
  115. self.need_refreshData = false
  116. self:UpdateView()
  117. else
  118. self.need_refreshData = true
  119. end
  120. end
  121. function GuildRedPacketItem:__delete( )
  122. if self.role_head then
  123. self.role_head:DeleteMe()
  124. self.role_head = nil
  125. end
  126. end