源战役客户端
Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

100 linhas
3.1 KiB

  1. -- <*
  2. -- @Author: Saber
  3. -- @Description: 经验副本路线排行界面前三名节点
  4. -- *>
  5. ExpDunWaveRankTopItem = ExpDunWaveRankTopItem or BaseClass(BaseItem)
  6. local ExpDunWaveRankTopItem = ExpDunWaveRankTopItem
  7. function ExpDunWaveRankTopItem:__init(parent_wnd, prefab_asset, layer_name)
  8. self.base_file = "expDun"
  9. self.layout_file = "ExpDunWaveRankTopItem"
  10. self.parent_wnd = parent_wnd
  11. self.layer_name = layer_name
  12. self.model = ExpDunModel:getInstance()
  13. self:Load()
  14. end
  15. function ExpDunWaveRankTopItem:Load_callback()
  16. local nodes = {
  17. "bg:img",
  18. "head_con",
  19. "info_con",
  20. "info_con/vip_con",
  21. "info_con/name:tmp",
  22. }
  23. self:GetChildren(nodes)
  24. self.role_head_item = HeadRoleItem.New(self.head_con)
  25. self.role_head_item:SetAnchoredPosition(0, 0)
  26. self.vipItem = RoleVipItem.New(self.vip_con)
  27. self.vipItem:SetAnchoredPosition(0, 0)
  28. self:AddEvents()
  29. if self.need_refreshData then
  30. self:UpdateView()
  31. end
  32. end
  33. function ExpDunWaveRankTopItem:AddEvents( )
  34. end
  35. function ExpDunWaveRankTopItem:SetData(rank, data)
  36. self.rank = rank
  37. self.data = data
  38. if self.is_loaded then
  39. self.need_refreshData = false
  40. self:UpdateView()
  41. else
  42. self.need_refreshData = true
  43. end
  44. end
  45. function ExpDunWaveRankTopItem:UpdateView( )
  46. lua_resM:setImageSprite(self, self.bg_img, "expDun_asset", "exp_wave_rank_top" .. self.rank, true)
  47. -- 根据排名数据更新节点位置及头像大小
  48. local size = self.rank == 1 and 78 or 70
  49. SetAnchoredPosition(self.head_con, self.rank == 1 and 41.5 or 37.5, self.rank == 1 and 20.5 or 11.5)
  50. self.role_head_item:SetItemSize(size, size)
  51. SetSizeDeltaY(self.info_con, self.rank == 1 and 38 or 33)
  52. -- 更新数据
  53. if self.data then
  54. local head_data = {
  55. vo = {
  56. role_id = self.data.role_id,
  57. turn = self.data.turn,
  58. picture_ver = self.data.picture_ver,
  59. picture = self.data.picture,
  60. profile_photo_id = self.data.profile_photo_id,
  61. level = self.data.level,
  62. dress_board_id = self.data.dress_id,
  63. empty_head = false,
  64. },
  65. show_tip = true,
  66. }
  67. self.role_head_item:SetData(head_data)
  68. self.role_head_item:SetVisible(true)
  69. self.vipItem:SetData(self.data.vip_flag, self.data.sup_vip_type)
  70. self.name_tmp.text = self.data.name
  71. else
  72. self.role_head_item:SetVisible(false)
  73. self.vipItem:SetData(0, 0)
  74. self.name_tmp.text = "虚位以待"
  75. end
  76. local vip_size_x = self.data and self.data.vip_flag > 0 and 40 or 0
  77. local total_len = self.name_tmp.preferredWidth + vip_size_x
  78. local x_offset = (self.info_con.sizeDelta.x - total_len) * 0.5
  79. SetAnchoredPositionX(self.vip_con, x_offset)
  80. SetAnchoredPositionX(self.name, x_offset + vip_size_x)
  81. end
  82. function ExpDunWaveRankTopItem:__delete( )
  83. if self.role_head_item then
  84. self.role_head_item:DeleteMe()
  85. self.role_head_item = nil
  86. end
  87. if self.vipItem then
  88. self.vipItem:DeleteMe()
  89. self.vipItem = nil
  90. end
  91. end