源战役客户端
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

111 行
3.1 KiB

  1. --<*
  2. -- @Author: Saber
  3. -- @Description: 社团申请界面社团信息item
  4. --*>
  5. GuildApplyItem = GuildApplyItem or BaseClass(BaseItem)
  6. local GuildApplyItem = GuildApplyItem
  7. function GuildApplyItem:__init(parent_wnd,prefab_asset,layer_name)
  8. self.base_file = "guild"
  9. self.layout_file = "GuildApplyItem"
  10. self.parent_wnd = parent_wnd
  11. self.layer_name = layer_name
  12. self.is_selected = false
  13. self.baged_item = {} -- 社团勋章list
  14. self.model = GuildModel:getInstance()
  15. self:Load()
  16. end
  17. function GuildApplyItem:Load_callback()
  18. self.nodes = {
  19. "bg:obj", "select:obj",
  20. "guild_icon:img", "guild_name:tmp", "guild_menber:tmp",
  21. "leader:tmp", "rank:tmp", "rank_val:img",
  22. "badge_con",
  23. }
  24. self:GetChildren(self.nodes)
  25. self:AddEvents()
  26. if self.need_refreshData then
  27. self:UpdateView()
  28. end
  29. end
  30. function GuildApplyItem:AddEvents( )
  31. local function click_event(target)
  32. if target == self.bg_obj then
  33. if self.callback and self.index then
  34. self.callback(self.index)
  35. end
  36. end
  37. end
  38. AddClickEvent(self.bg_obj, click_event, LuaSoundManager.SOUND_UI.SWITCH)
  39. end
  40. function GuildApplyItem:UpdateView( )
  41. local asset_name = "guild_asset"
  42. lua_resM:setImageSprite(self, self.guild_icon_img, "guildIcon_asset", "guild_icon" .. self.data.guild_flag, true)
  43. local guild_lv_cfg = Config.Guildlv[self.data.guild_lv or 1]
  44. self.guild_name_tmp.text = self.data.guild_name
  45. self.guild_menber_tmp.text = string.format("人数:<color=#ffffff><color=%s>%s</color>/%s</color>",
  46. ColorUtil.GREEN_DARK, self.data.member_num, guild_lv_cfg.member_capacity + self.data.add_mem_num)
  47. self.leader_tmp.text = string.format("团长:<color=#ffffff>%s</color>", self.data.name)
  48. self.rank_tmp.text = "社团评价:"
  49. lua_resM:setImageSprite(self, self.rank_val_img, "guild_asset", "guild_rank" .. self.data.division, true)
  50. self:UpdateBadgeItems()
  51. self:SetSelected(self.is_selected)
  52. end
  53. -- 更新社团勋章
  54. function GuildApplyItem:UpdateBadgeItems( )
  55. -- 排序社团勋章
  56. self.model:SortGuildBadge(self.data.badges)
  57. local item
  58. local function badge_click_callback(index, id)
  59. if self.badge_callback then
  60. self.badge_callback(self.transform.anchoredPosition.y, index, id)
  61. end
  62. end
  63. for k, v in ipairs(self.data.badges) do
  64. item = self.baged_item[k]
  65. if not item then
  66. item = GuildBadgeItem.New(self.badge_con)
  67. self.baged_item[k] = item
  68. end
  69. item:SetAnchoredPosition((k-1) * 84, -10)
  70. item:SetData(v, false, nil, k, badge_click_callback)
  71. item:SetVisible(true)
  72. end
  73. if #self.data.badges < #self.baged_item then
  74. for k = #self.data.badges + 1, #self.baged_item do
  75. self.baged_item[k]:SetVisible(false)
  76. end
  77. end
  78. end
  79. function GuildApplyItem:SetData( index, data, callback, badge_callback )
  80. self.index = index
  81. self.data = data
  82. self.callback = callback
  83. self.badge_callback = badge_callback
  84. if self.is_loaded then
  85. self.need_refreshData = false
  86. self:UpdateView()
  87. else
  88. self.need_refreshData = true
  89. end
  90. end
  91. function GuildApplyItem:SetSelected(bool)
  92. self.is_selected = bool
  93. if self.is_loaded then
  94. self.select_obj:SetActive(self.is_selected)
  95. end
  96. end
  97. function GuildApplyItem:__delete( )
  98. for k, v in pairs(self.baged_item) do
  99. v:DeleteMe()
  100. v = nil
  101. end
  102. self.baged_item = nil
  103. end