local UITownSpecialTeamGuide = UIViewClass() function UITownSpecialTeamGuide:OnOpened(context) self:RegistSystemEvent(EventID.UI_SpecialTeam_CreateTeam, self.RefreshTeamPanel) self:RegistSystemEvent(EventID.UI_SpecialTeam_TeamInfoChange, self.RefreshTeamPanel) self:RegistSystemEvent(EventID.UI_SpecialTeam_MemberInfoChange, self.RefreshTeamPanel) self:RegistSystemEvent(EventID.UI_SpecialTeam_LeaveTeam, self.RefreshTeamPanel) self:RefreshTeamPanel() end function UITownSpecialTeamGuide:RefreshTeamPanel() local hasTeam = MDL.SpecialTeam.HasTeam() if hasTeam then UIUtils.SetActive(self.group_Teammate.gameObject, true) UIUtils.SetActive(self.group_NoTeam, false) local index = 0 local memberInfos = MDL.SpecialTeam.GetAllMembersInfo() for i, memberInfo in ipairs(memberInfos) do if memberInfo.detailInfo.mapId == BattleDataGetter.GetCurLevelID() then index = index + 1 local uiNode = self.group_Teammate[index] if uiNode then UIUtils.SetActive(uiNode.gameObject, true) self:RefreshSingleTeamMember(memberInfo, uiNode) else UIUtils.SetActive(uiNode.gameObject, false) end end end for i = index + 1, #self.group_Teammate do UIUtils.SetActive(self.group_Teammate[i].gameObject, false) end else UIUtils.SetActive(self.group_Teammate.gameObject, false) UIUtils.SetActive(self.group_NoTeam, true) end end function UITownSpecialTeamGuide:RefreshSingleTeamMember(data, cell) local baseInfo = data.playerShowInfo CTL.Character.SetPortraitAndFrame(cell.UIHeroHead95, baseInfo.PortraitId, baseInfo.FrameId, baseInfo.level) UIUtils.SetCanvasSortingOrderByMainCanvas(cell.UIHeroHead95.effectUpCanvas, cell.UpCanvas, CTL.Character.UpOrder.Common) local isLeader = MDL.SpecialTeam.IsTeamLeader(data.memberId) UIUtils.SetActive(cell.ico_Leader, isLeader) cell.lab_RoleName.text = MDL.SpecialTeam.GetMemberNameById(data.memberId) local memberState = data.state UIUtils.SetActive(cell.img_OffLine, memberState == MDL.Team.MemberState.Leave) end function UITownSpecialTeamGuide:OpenInteractivePanel(index) local memberInfo = MDL.SpecialTeam.GetAllMembersInfo()[index] CTL.SpecialTeam.OpenTeamInteractive(memberInfo, -540, 380 - (index - 1) * 120) end function UITownSpecialTeamGuide:OnButtonClicked(comp) if comp == self.btn_QuickTeam then CTL.SpecialTeam.OpenMain() else for i, v in ipairs(self.group_Teammate) do if comp == v.btn_PlayerHead then self:OpenInteractivePanel(i) return end end end end return UITownSpecialTeamGuide