-- <* -- @Author: Saber -- @Description: 社团拼单参与玩家头像 -- *> GuildSpellListHeadItem = GuildSpellListHeadItem or BaseClass(BaseItem) local GuildSpellListHeadItem = GuildSpellListHeadItem function GuildSpellListHeadItem:__init(parent_wnd,prefab_asset,layer_name) self.base_file = "guild" self.layout_file = "GuildSpellListHeadItem" self.parent_wnd = parent_wnd self.layer_name = layer_name self.model = GuildModel:getInstance() self:Load() end function GuildSpellListHeadItem:Load_callback() local nodes = { "head_con", "lock:obj", "add_btn:obj", "kick_fakeRole_btn:obj", } self:GetChildren(nodes) self.head_item = HeadRoleItem.New(self.head_con) self.head_item:SetItemSize(69, 69) self:AddEvents() if self.need_refreshData then self:UpdateView() self:StartAddBtnAnim() end end function GuildSpellListHeadItem:AddEvents( ) local function click_event(target) if target == self.add_btn_obj then -- 点击弹出拼单界面的邀请小窗口 if self.click_callback then self.click_callback() end elseif target == self.kick_fakeRole_btn_obj then -- 点击踢出邀请的假人 local data = self.model:GetCurSelectedSpellListData() if data then if data.state < 3 then -- local cur_order_id = self.model:GetCurSelectedSpellListId() -- self.model:Fire(GuildModel.REQUEST_CCMD_EVENT, 40037, cur_order_id, 2) self.model:Fire(GuildModel.REQUEST_CCMD_EVENT, 40037, data.order, 2) end end end end AddClickEvent(self.add_btn_obj, click_event) AddClickEvent(self.kick_fakeRole_btn_obj, click_event) end function GuildSpellListHeadItem:SetData( index, sl_cfg, head_data, click_callback) self.index = index self.sl_cfg = sl_cfg self.head_data = head_data self.click_callback = click_callback if self.is_loaded then self.need_refreshData = false self:UpdateView() else self.need_refreshData = true end end function GuildSpellListHeadItem:UpdateView( ) local head_vo = { vo = { id = 0, do_not_click = true, empty_head = true, }, } if self.index == 1 then -- 1的直接显示玩家自己 self.lock_obj:SetActive(false) self.add_btn_obj:SetActive(false) self.kick_fakeRole_btn_obj:SetActive(false) local main_vo = RoleManager.Instance.mainRoleInfo head_vo.vo.id = main_vo.role_id head_vo.vo.profile_photo_id = main_vo.profile_photo_id head_vo.vo.empty_head = false head_vo.vo.level = main_vo.level head_vo.vo.dress_board_id = main_vo.dress_id or main_vo.dress_board head_vo.vo.do_not_click = false else self.lock_obj:SetActive(false) if self.head_data then head_vo.vo = self.head_data if self.head_data.role_id < 10 then -- 假人,头像需要固定 head_vo.vo.profile_photo_id = 424008 head_vo.vo.level = nil head_vo.show_tip = false self.kick_fakeRole_btn_obj:SetActive(true) else head_vo.vo.dress_board_id = self.head_data.dress_id or self.head_data.dress_board head_vo.vo.do_not_click = false self.kick_fakeRole_btn_obj:SetActive(false) end self.add_btn_obj:SetActive(false) else self.add_btn_obj:SetActive(true) self.kick_fakeRole_btn_obj:SetActive(false) end end self.head_item:SetData(head_vo) end -- 创建一次邀请按钮的大小缩放动画 function GuildSpellListHeadItem:StartAddBtnAnim( ) if not self.is_loaded then return end cc.ActionManager:getInstance():removeAllActionsFromTarget(self.add_btn) SetLocalScale(self.add_btn, 1, 1, 1) local action_scale1 = cc.ScaleTo.New(1, 1.2, 1.2, 1.2) local action_scale2 = cc.ScaleTo.New(1, 1, 1, 1) local action = cc.Sequence.New(action_scale1, action_scale2) action = cc.RepeatForever.New(action) cc.ActionManager:getInstance():addAction(action, self.add_btn) end function GuildSpellListHeadItem:__delete( ) if self.head_item then self.head_item:DeleteMe() self.head_item = nil end cc.ActionManager:getInstance():removeAllActionsFromTarget(self.add_btn) end