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

90 行
2.6 KiB

  1. RoleHeadShowItem = RoleHeadShowItem or BaseClass(BaseItem)
  2. function RoleHeadShowItem:__init()
  3. self.base_file = "newMainRole"
  4. self.layout_file = "RoleHeadShowItem"
  5. self.mainVo = RoleManager.Instance.mainRoleInfo
  6. self.model = NewMainRoleModel:getInstance()
  7. self.lock_state = false
  8. self:Load()
  9. end
  10. --清除界面
  11. function RoleHeadShowItem:__delete()
  12. if self.event_id then
  13. GlobalEventSystem:UnBind(self.event_id)
  14. self.event_id = nil
  15. end
  16. if self.refresh_activate_id then
  17. self.model:UnBind(self.refresh_activate_id)
  18. self.refresh_activate_id = nil
  19. end
  20. end
  21. function RoleHeadShowItem:Load_callback()
  22. local node = {
  23. "head:raw","select:obj","lock:obj", "activatable:obj", "equiped:obj"
  24. }
  25. self:GetChildren(node)
  26. SetLocalScale(self.head.transform, 0.7,0.7,0.7)
  27. self:InitEvent()
  28. self:UpdateView()
  29. self:SetSelect(self.select_state)
  30. end
  31. function RoleHeadShowItem:InitEvent()
  32. local function onBtnClickHandler(target, x, y)
  33. if target == self.gameObject then
  34. if self.callback then
  35. self.callback(self.index, self.data, self.lock_state)
  36. end
  37. end
  38. end
  39. AddClickEvent(self.gameObject, onBtnClickHandler, 2)
  40. end
  41. function RoleHeadShowItem:SetData(index, data, callback)
  42. self.data = data
  43. self.index = index
  44. self.callback = callback or nil
  45. -- 获取锁定状态
  46. self.lock_state = self.data and self.data.status and self.data.status ~= 2 or false
  47. if self.is_loaded then
  48. self:UpdateView()
  49. end
  50. end
  51. function RoleHeadShowItem:UpdateView( )
  52. if not self.data then return end
  53. lua_resM:setOutsideRawImage(self, self.head_raw, GameResPath.GetHeadIcon(self.data.photo_id), true)
  54. self:RefreshActivate()
  55. self:RefreshEquipFlag()
  56. self:SetLock()
  57. end
  58. -- 刷新头像锁定标识
  59. function RoleHeadShowItem:SetLock()
  60. self.lock_state = self.data and self.data.status and self.data.status == 0 or false
  61. self.lock_obj:SetActive(self.lock_state)
  62. end
  63. -- 刷新头像激活标识
  64. function RoleHeadShowItem:RefreshActivate( )
  65. local status = self.data and self.data.status or 0
  66. self.activatable_obj:SetActive(status == 1)
  67. end
  68. -- 刷新头像佩戴标识
  69. function RoleHeadShowItem:RefreshEquipFlag( )
  70. if not self.is_loaded then return end
  71. local cur_head_id = RoleManager.Instance.mainRoleInfo.profile_photo_id
  72. self.equiped_obj:SetActive(cur_head_id == self.data.photo_id)
  73. end
  74. function RoleHeadShowItem:SetSelect(bool)
  75. self.select_state = bool
  76. if self.is_loaded then
  77. self.select_obj:SetActive(bool)
  78. end
  79. end