源战役客户端
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

78 строки
2.4 KiB

1 месяц назад
  1. -- <*
  2. -- @Author: Saber
  3. -- @Description: 跨服社团排行玩法排行奖励预览节点
  4. -- *>
  5. GuildCSGRRewardItem = GuildCSGRRewardItem or BaseClass(BaseItem)
  6. local GuildCSGRRewardItem = GuildCSGRRewardItem
  7. function GuildCSGRRewardItem:__init(parent_wnd,prefab_asset,layer_name)
  8. self.base_file = "guildCSGR"
  9. self.layout_file = "GuildCSGRRewardItem"
  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 GuildCSGRRewardItem:Load_callback()
  17. local nodes = {
  18. "rank:tmp",
  19. "item_con",
  20. }
  21. self:GetChildren(nodes)
  22. self:AddEvents()
  23. if self.need_refreshData then
  24. self:UpdateView()
  25. end
  26. end
  27. function GuildCSGRRewardItem:AddEvents( )
  28. end
  29. function GuildCSGRRewardItem:SetData( data, tab_index )
  30. self.data = data
  31. self.tab_index = tab_index
  32. if self.is_loaded then
  33. self.need_refreshData = false
  34. self:UpdateView()
  35. else
  36. self.need_refreshData = true
  37. end
  38. end
  39. function GuildCSGRRewardItem:UpdateView( )
  40. if self.data then
  41. self.rank_tmp.text = self.data.rank_min == self.data.rank_max
  42. and string.format("%s第%s名", self.tab_index == 3 and "" or "社团排名", self.data.rank_min)
  43. or string.format("第%s~%s名", self.data.rank_min, self.data.rank_max)
  44. -- 加载奖励内容
  45. local item
  46. for k, v in ipairs(self.data.rewards) do
  47. item = self.award_list[k]
  48. if not item then
  49. item = UIObjPool:getInstance():PopItem(UIObjPool.UIType.AwardItem, self.item_con)
  50. self.award_list[k] = item
  51. end
  52. item:SetVisible(true)
  53. item:SetItemSize(62, 62)
  54. item:SetAnchoredPosition(self.item_con.sizeDelta.x - 70 * k + 12, -2)
  55. local typeId, lock = GoodsModel:getInstance():GetMappingTypeId(v[1], v[2])
  56. item:SetData(typeId, v[3], nil, nil, lock)
  57. end
  58. if #self.award_list > #self.data.rewards then
  59. for k = #self.data.rewards+1, #self.award_list do
  60. self.award_list[k]:SetVisible(false)
  61. end
  62. end
  63. end
  64. end
  65. function GuildCSGRRewardItem:__delete( )
  66. for k, v in pairs(self.award_list) do
  67. UIObjPool:getInstance():PushItem(UIObjPool.UIType.AwardItem, v)
  68. end
  69. self.award_list = {}
  70. end