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

101 lines
3.5 KiB

пре 4 недеља
  1. -- <*
  2. -- @Author: Saber
  3. -- @Description: 社团通用头像item
  4. -- *>
  5. GuildCommonHeadItem = GuildCommonHeadItem or BaseClass(BaseItem)
  6. local GuildCommonHeadItem = GuildCommonHeadItem
  7. function GuildCommonHeadItem:__init(parent_wnd,prefab_asset,layer_name)
  8. self.base_file = "guild"
  9. self.layout_file = "GuildCommonHeadItem"
  10. self.parent_wnd = parent_wnd
  11. self.layer_name = layer_name
  12. self.size = 156
  13. self.default_size = 156
  14. self.is_active = true
  15. self.model = GuildModel:getInstance()
  16. self:Load()
  17. end
  18. function GuildCommonHeadItem:Load_callback()
  19. self.nodes = {
  20. "head_con", "position_flag:img:obj", "name:tmp", "no_data_flag:obj:tmp",
  21. "no_role:obj", "addition_imgs:obj",
  22. }
  23. self:GetChildren(self.nodes)
  24. self.role_head_item = HeadRoleItem.New(self.head_con)
  25. self:AddEvents()
  26. if self.need_refreshData then
  27. self:UpdateView()
  28. end
  29. end
  30. function GuildCommonHeadItem:AddEvents( )
  31. local function click_event(target)
  32. if target == self.no_data_flag_obj or target == self.no_role_obj then
  33. if self.has_authority then -- 有权限,打开任命界面
  34. self.model:Fire(GuildModel.OPEN_GUILD_POS_ALLOT_VIEW, true, 2)
  35. else -- 没权限,打开申请界面
  36. self.model:Fire(GuildModel.OPEN_GUILD_APPLY_MGR_VIEW, true)
  37. end
  38. end
  39. end
  40. AddClickEvent(self.no_data_flag_obj, click_event)
  41. AddClickEvent(self.no_role_obj, click_event)
  42. end
  43. function GuildCommonHeadItem:UpdateView( )
  44. self:SetItemSize()
  45. self.transform.anchoredPosition = self.pos
  46. self.role_head_item:SetData(self.head_data)
  47. if self.show_position then
  48. lua_resM:setImageSprite(self, self.position_flag_img, "guild_asset", "guild_position"..self.show_position.."_pointfilter", true)
  49. end
  50. self.position_flag_obj:SetActive(self.show_position and true or false)
  51. self.addition_imgs_obj:SetActive(self.show_position and self.show_position == GuildModel.GuildPosition.Leader or false)
  52. self.name_tmp.text = self.show_name
  53. -- 判断是否拥有权限任命
  54. self.has_authority = self.model:HasAppointPremission(GuildModel.GuildPosition.ViceLeader)
  55. self.no_data_flag_tmp.text = self.no_data and (self.has_authority and "<u>前往任职</u>" or "<u>虚位以待</u>") or ""
  56. self.no_role_obj:SetActive(self.no_data)
  57. end
  58. -- 传递参数
  59. --[[
  60. head_data:
  61. size:
  62. show_position:,id
  63. show_lv:
  64. show_name:
  65. no_data:
  66. ]]
  67. function GuildCommonHeadItem:SetData( data )
  68. self.head_data = data.head_data
  69. self.size = data.size or self.default_size
  70. self.show_position = data.show_position or false
  71. self.show_name = data.show_name or ""
  72. self.no_data = data.no_data or false
  73. self.pos = data.pos or Vector2(0, 0)
  74. -- print("Saber:GuildCommonHeadItem [62] self.no_data: ",self.no_data)
  75. if self.is_loaded then
  76. self.need_refreshData = false
  77. self:UpdateView()
  78. else
  79. self.need_refreshData = true
  80. end
  81. end
  82. function GuildCommonHeadItem:SetItemSize()
  83. local size_ratio = self.size / self.default_size
  84. self.role_head_item:SetItemSize(self.size, self.size)
  85. -- self.transform.localScale = Vector2(size_ratio, size_ratio)
  86. end
  87. function GuildCommonHeadItem:__delete( )
  88. if self.role_head_item then
  89. self.role_head_item:DeleteMe()
  90. self.role_head_item = nil
  91. end
  92. end