源战役客户端
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.

177 lines
6.3 KiB

преди 4 седмици
  1. -- <*
  2. -- @Author: Saber
  3. -- @Description: 本国团战排行界面节点GuildCSGRRankItem
  4. -- *>
  5. GuildCSGRRankItem = GuildCSGRRankItem or BaseClass(BaseItem)
  6. local GuildCSGRRankItem = GuildCSGRRankItem
  7. function GuildCSGRRankItem:__init(parent_wnd,prefab_asset,layer_name)
  8. self.base_file = "guildCSGR"
  9. self.layout_file = "GuildCSGRRankItem"
  10. self.parent_wnd = parent_wnd
  11. self.layer_name = layer_name
  12. self.award_list = {}
  13. self.model = GuildModel:getInstance()
  14. self:Load()
  15. end
  16. function GuildCSGRRankItem:Load_callback()
  17. local nodes = {
  18. -- 头像,社团标志节点
  19. "role_head:obj", "guild_flag:img",
  20. -- 排行节点
  21. "rank_icon:img", "rank_lb:tmp",
  22. -- 奖励节点
  23. "reward_scroll:scroll",
  24. "reward_scroll/reward_vp:img",
  25. "reward_scroll/reward_vp/reward_con",
  26. -- 玩家/社团信息节点
  27. "data_con",
  28. "data_con/vip:obj",
  29. "data_con/gender:obj:img",
  30. "data_con/name:tmp",
  31. -- 积分
  32. "score:tmp",
  33. "line:obj",
  34. }
  35. self:GetChildren(nodes)
  36. -- 加载vip节点
  37. self.vipItem = RoleVipItem.New(self.vip)
  38. self.vipItem:SetAnchoredPosition(0, 0)
  39. -- 头像节点
  40. self.role_head_item = HeadRoleItem.New(self.role_head)
  41. self.role_head_item:SetItemSize(57, 57)
  42. self:AddEvents()
  43. if self.need_refreshData then
  44. self:UpdateView()
  45. end
  46. end
  47. function GuildCSGRRankItem:AddEvents( )
  48. end
  49. function GuildCSGRRankItem:SetData( rank_type, rank, rank_data, reward_data, is_mine )
  50. -- rank_type:0个人排行 1社团排行
  51. self.rank_type = rank_type
  52. self.rank = rank
  53. self.rank_data = rank_data
  54. self.reward_data = reward_data
  55. self.is_mine = is_mine or false -- 是否是玩家自己的信息节点item
  56. if self.is_loaded then
  57. self.need_refreshData = false
  58. self:UpdateView()
  59. else
  60. self.need_refreshData = true
  61. end
  62. end
  63. function GuildCSGRRankItem:UpdateView( )
  64. self.line_obj:SetActive(not self.is_mine)
  65. local is_role_rank = self.rank_type == 0
  66. -- 排行表现
  67. self.rank_icon_img.enabled = self.rank and self.rank <= 3 or false
  68. if self.rank and self.rank <= 3 then
  69. lua_resM:setImageSprite(self, self.rank_icon_img, "guildCSGR_asset", "csgr_rank" .. self.rank, true)
  70. end
  71. self.rank_lb_tmp.text = self.rank and (self.rank <= 3 and "" or self.rank) or "榜外"
  72. -- 排行数据
  73. if self.rank_data then
  74. -- 名称信息
  75. self.name_tmp.text = string.format("s%s.%s", self.rank_data.server_num, self.rank_data.name)
  76. if is_role_rank then -- 个人排行,要展示vip和玩家性别
  77. self.vip_obj:SetActive(true)
  78. self.role_head_obj:SetActive(true)
  79. self.gender_img.enabled = true
  80. self.guild_flag_img.enabled = false
  81. self.vipItem:SetData(self.rank_data.vip,self.rank_data.svip_type)
  82. lua_resM:setImageSprite(self, self.gender_img, "common_asset", self.rank_data.gender == 1 and "com_boy" or "com_girl", true)
  83. local vip_offset = self.rank_data.vip > 0 and 40 or 5
  84. SetAnchoredPositionX(self.name, vip_offset)
  85. local gender_pos_x = vip_offset + self.name_tmp.preferredWidth + 6
  86. SetAnchoredPositionX(self.gender, gender_pos_x)
  87. local head_data = {
  88. vo = {
  89. role_id = self.rank_data.id or 0,
  90. server_id = self.rank_data.server_num or 0,
  91. sex = self.rank_data.gender or 0,
  92. profile_photo_id = self.rank_data.profile_photo_id or 0,
  93. level = self.rank_data.lv or nil,
  94. profile_photo_id = self.rank_data.photo_profile_id,
  95. dress_board_id = self.rank_data.dress_id or nil,
  96. },
  97. show_tip = true,
  98. }
  99. self.role_head_item:SetData(head_data)
  100. else
  101. self.role_head_obj:SetActive(false)
  102. self.vip_obj:SetActive(false)
  103. self.guild_flag_img.enabled = true
  104. lua_resM:setImageSprite(self, self.guild_flag_img, "guildIcon_asset", "guild_icon" .. self.rank_data.guild_flag, true)
  105. self.gender_img.enabled = false
  106. SetAnchoredPositionX(self.name, 5)
  107. end
  108. -- 积分
  109. self.score_tmp.text = string.format("伤害:<color=#fdffc2>%s</color>", self.rank_data.val)
  110. else
  111. self.name_tmp.text = "虚位以待"
  112. self.role_head_obj:SetActive(false)
  113. self.vip_obj:SetActive(false)
  114. self.gender_img.enabled = false
  115. self.guild_flag_img.enabled = false
  116. SetAnchoredPositionX(self.name, 5)
  117. self.score_tmp.text = "伤害:<color=#fdffc2>0</color>"
  118. end
  119. -- 加载奖励内容
  120. self:UpdateRewards()
  121. end
  122. function GuildCSGRRankItem:UpdateRewards( )
  123. for k, v in ipairs(self.award_list) do
  124. v:SetVisible(false)
  125. end
  126. if self.reward_data.is_empty then -- 空奖励列表什么也不做
  127. return
  128. end
  129. self.reward_scroll_scroll.enabled = false
  130. self.reward_vp_img.raycastTarget = false
  131. -- 加载奖励信息
  132. local reward_list = self.reward_data.rewards
  133. -- 设置容器宽度
  134. SetSizeDeltaX(self.reward_con, 72 * #reward_list)
  135. SetAnchoredPositionX(self.reward_con, self.reward_con.sizeDelta.x > self.reward_scroll.sizeDelta.x and self.reward_con.sizeDelta.x - self.reward_scroll.sizeDelta.x or 0)
  136. -- 加载奖励内容
  137. local item
  138. for k, v in ipairs(reward_list) do
  139. item = self.award_list[k]
  140. if not item then
  141. item = UIObjPool:getInstance():PopItem(UIObjPool.UIType.AwardItem, self.reward_con)
  142. self.award_list[k] = item
  143. end
  144. item:SetVisible(true)
  145. item:SetItemSize(62, 62)
  146. item:SetAnchoredPosition(self.reward_con.sizeDelta.x - 70 * k, -5)
  147. local typeId, lock = GoodsModel:getInstance():GetMappingTypeId(v[1], v[2])
  148. item:SetData(typeId, v[3], nil, nil, lock)
  149. end
  150. end
  151. function GuildCSGRRankItem:__delete( )
  152. if self.vipItem then
  153. self.vipItem:DeleteMe()
  154. self.vipItem = nil
  155. end
  156. if self.role_head_item then
  157. self.role_head_item:DeleteMe()
  158. self.role_head_item = nil
  159. end
  160. for k, v in pairs(self.award_list) do
  161. UIObjPool:getInstance():PushItem(UIObjPool.UIType.AwardItem, v)
  162. end
  163. self.award_list = nil
  164. end