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

130 lines
4.5 KiB

  1. -- <*
  2. -- @Author: Saber
  3. -- @Description: 社团拼单参与玩家头像
  4. -- *>
  5. GuildSpellListHeadItem = GuildSpellListHeadItem or BaseClass(BaseItem)
  6. local GuildSpellListHeadItem = GuildSpellListHeadItem
  7. function GuildSpellListHeadItem:__init(parent_wnd,prefab_asset,layer_name)
  8. self.base_file = "guild"
  9. self.layout_file = "GuildSpellListHeadItem"
  10. self.parent_wnd = parent_wnd
  11. self.layer_name = layer_name
  12. self.model = GuildModel:getInstance()
  13. self:Load()
  14. end
  15. function GuildSpellListHeadItem:Load_callback()
  16. local nodes = {
  17. "head_con",
  18. "lock:obj",
  19. "add_btn:obj",
  20. "kick_fakeRole_btn:obj",
  21. }
  22. self:GetChildren(nodes)
  23. self.head_item = HeadRoleItem.New(self.head_con)
  24. self.head_item:SetItemSize(69, 69)
  25. self:AddEvents()
  26. if self.need_refreshData then
  27. self:UpdateView()
  28. self:StartAddBtnAnim()
  29. end
  30. end
  31. function GuildSpellListHeadItem:AddEvents( )
  32. local function click_event(target)
  33. if target == self.add_btn_obj then -- 点击弹出拼单界面的邀请小窗口
  34. if self.click_callback then
  35. self.click_callback()
  36. end
  37. elseif target == self.kick_fakeRole_btn_obj then -- 点击踢出邀请的假人
  38. local data = self.model:GetCurSelectedSpellListData()
  39. if data then
  40. if data.state < 3 then
  41. -- local cur_order_id = self.model:GetCurSelectedSpellListId()
  42. -- self.model:Fire(GuildModel.REQUEST_CCMD_EVENT, 40037, cur_order_id, 2)
  43. self.model:Fire(GuildModel.REQUEST_CCMD_EVENT, 40037, data.order, 2)
  44. end
  45. end
  46. end
  47. end
  48. AddClickEvent(self.add_btn_obj, click_event)
  49. AddClickEvent(self.kick_fakeRole_btn_obj, click_event)
  50. end
  51. function GuildSpellListHeadItem:SetData( index, sl_cfg, head_data, click_callback)
  52. self.index = index
  53. self.sl_cfg = sl_cfg
  54. self.head_data = head_data
  55. self.click_callback = click_callback
  56. if self.is_loaded then
  57. self.need_refreshData = false
  58. self:UpdateView()
  59. else
  60. self.need_refreshData = true
  61. end
  62. end
  63. function GuildSpellListHeadItem:UpdateView( )
  64. local head_vo = {
  65. vo = {
  66. id = 0,
  67. do_not_click = true,
  68. empty_head = true,
  69. },
  70. }
  71. if self.index == 1 then -- 1的直接显示玩家自己
  72. self.lock_obj:SetActive(false)
  73. self.add_btn_obj:SetActive(false)
  74. self.kick_fakeRole_btn_obj:SetActive(false)
  75. local main_vo = RoleManager.Instance.mainRoleInfo
  76. head_vo.vo.id = main_vo.role_id
  77. head_vo.vo.profile_photo_id = main_vo.profile_photo_id
  78. head_vo.vo.empty_head = false
  79. head_vo.vo.level = main_vo.level
  80. head_vo.vo.dress_board_id = main_vo.dress_id or main_vo.dress_board
  81. head_vo.vo.do_not_click = false
  82. else
  83. self.lock_obj:SetActive(false)
  84. if self.head_data then
  85. head_vo.vo = self.head_data
  86. if self.head_data.role_id < 10 then -- 假人,头像需要固定
  87. head_vo.vo.profile_photo_id = 424008
  88. head_vo.vo.level = nil
  89. head_vo.show_tip = false
  90. self.kick_fakeRole_btn_obj:SetActive(true)
  91. else
  92. head_vo.vo.dress_board_id = self.head_data.dress_id or self.head_data.dress_board
  93. head_vo.vo.do_not_click = false
  94. self.kick_fakeRole_btn_obj:SetActive(false)
  95. end
  96. self.add_btn_obj:SetActive(false)
  97. else
  98. self.add_btn_obj:SetActive(true)
  99. self.kick_fakeRole_btn_obj:SetActive(false)
  100. end
  101. end
  102. self.head_item:SetData(head_vo)
  103. end
  104. -- 创建一次邀请按钮的大小缩放动画
  105. function GuildSpellListHeadItem:StartAddBtnAnim( )
  106. if not self.is_loaded then return end
  107. cc.ActionManager:getInstance():removeAllActionsFromTarget(self.add_btn)
  108. SetLocalScale(self.add_btn, 1, 1, 1)
  109. local action_scale1 = cc.ScaleTo.New(1, 1.2, 1.2, 1.2)
  110. local action_scale2 = cc.ScaleTo.New(1, 1, 1, 1)
  111. local action = cc.Sequence.New(action_scale1, action_scale2)
  112. action = cc.RepeatForever.New(action)
  113. cc.ActionManager:getInstance():addAction(action, self.add_btn)
  114. end
  115. function GuildSpellListHeadItem:__delete( )
  116. if self.head_item then
  117. self.head_item:DeleteMe()
  118. self.head_item = nil
  119. end
  120. cc.ActionManager:getInstance():removeAllActionsFromTarget(self.add_btn)
  121. end