源战役客户端
Não pode escolher mais do que 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.

135 linhas
3.5 KiB

  1. GuildWarRankItem = GuildWarRankItem or BaseClass(BaseItem)
  2. local GuildWarRankItem = GuildWarRankItem
  3. function GuildWarRankItem:__init()
  4. self.base_file = "guild"
  5. self.layout_file = "GuildWarRankItem"
  6. self.is_delay_callback = true
  7. self.model = GuildModel:getInstance()
  8. self.index = false
  9. self.data = false
  10. self.i_type = false
  11. self.hide_bg = false
  12. self.item_list = {}
  13. self:Load()
  14. end
  15. function GuildWarRankItem:Load_callback()
  16. local nodes = {
  17. "con_item",
  18. "value_2:tmp",
  19. "value_1:tmp",
  20. "rank:tmp",
  21. "info_con/vip_con",
  22. "rank_image:img:obj",
  23. "info_con/name:tmp",
  24. "bg:raw:obj",
  25. "info_con:obj",
  26. "info_con/sex:img",
  27. "info_con/power:txt",
  28. "none_rank:obj:tmp",
  29. }
  30. self:GetChildren(nodes)
  31. self:InitEvent()
  32. if self.need_refreshData then
  33. self:SetData(self.data, self.index, self.i_type)
  34. self:HideBg(self.hide_bg)
  35. end
  36. self.need_refreshData = false
  37. end
  38. function GuildWarRankItem:SetData(data, index, i_type)
  39. self.data = data
  40. self.index = index
  41. self.i_type = i_type
  42. if self.is_loaded then
  43. self.need_refreshData = false
  44. self.none_rank_obj:SetActive(false)
  45. self.value_1_tmp.text = self.data and self.data.value_1 or "虚位以待"
  46. self.value_2_tmp.text = self.data and self.data.value_2 or ""
  47. if self.index <= 3 and self.index > 0 then
  48. self.rank_image_obj:SetActive(true)
  49. lua_resM:setImageSprite(self, self.rank_image_img, "guildScene_asset", "guild_war_rank_" .. index, true)
  50. self.rank_tmp.text = ""
  51. else
  52. self.rank_image_obj:SetActive(false)
  53. if index == 0 then
  54. self.none_rank_obj:SetActive(true)
  55. self.rank_tmp.text = ""
  56. else
  57. self.rank_tmp.text = index
  58. end
  59. end
  60. if self.i_type == GuildWarRankView.TAB_ID.GUILD or not self.data then
  61. self.info_con_obj:SetActive(false)
  62. else
  63. self.info_con_obj:SetActive(true)
  64. if not self.vipItem then
  65. self.vipItem = RoleVipItem.New(self.vip_con)
  66. end
  67. self.name_tmp.text = self.data.name
  68. self.vipItem:SetData(self.data.vip_flag,self.data.sup_vip_type)
  69. self.power_txt.text = "f"..self.data.power
  70. lua_resM:setImageSprite(self, self.sex_img, "common_asset", self.data.sex == 1 and "com_boy" or "com_girl", true)
  71. SetAnchoredPositionX(self.sex_img.transform, self.name_tmp.preferredWidth - 5)
  72. end
  73. self:UpdateReward(index, i_type)
  74. else
  75. self.need_refreshData = true
  76. end
  77. end
  78. function GuildWarRankItem:UpdateReward(rank, i_type)
  79. local reward_list = self.model:GuildWarGetRankViewRewardByRankAndType(rank, i_type)
  80. for i, v in ipairs(self.item_list) do
  81. v:SetVisible(false)
  82. end
  83. local start_pos = (5 - #reward_list) * 76
  84. for ii,vv in ipairs(reward_list) do
  85. local show_item = self.item_list[ii]
  86. if not show_item then
  87. show_item = UIObjPool:PopItem(UIObjPool.UIType.AwardItem, self.con_item)
  88. show_item:SetIsFixSize(false)
  89. show_item:SetItemSize(62,62)
  90. self.item_list[ii] = show_item
  91. end
  92. local goods_id = GoodsModel:getInstance():GetMappingTypeId(vv[1],vv[2])
  93. SetLocalPosition(show_item.transform, start_pos + 76*(ii-1), 0)
  94. show_item:SetData(goods_id, vv[3])
  95. show_item:SetVisible(true)
  96. end
  97. end
  98. function GuildWarRankItem:__delete()
  99. if self.vipItem then
  100. self.vipItem:DeleteMe()
  101. self.vipItem = nil
  102. end
  103. for k,v in ipairs(self.item_list) do
  104. UIObjPool:getInstance():PushItem(UIObjPool.UIType.AwardItem, v)
  105. end
  106. self.item_list = {}
  107. end
  108. function GuildWarRankItem:InitEvent()
  109. end
  110. function GuildWarRankItem:HideBg(hide_bg)
  111. self.hide_bg = hide_bg
  112. if self.is_loaded then
  113. self.bg_obj:SetActive(not self.hide_bg)
  114. else
  115. self.need_refreshData = true
  116. end
  117. end