local UITeamCreatePanel = UIViewClass() local SELECTED_COLOR = "93969C" local UNSELECT_COLOR = "93969c" function UITeamCreatePanel:OnOpened(context) self:RegistSystemEvent(EventID.UI_Team_CreateTeam, self.CloseSelf) self:RegistSystemEvent(EventID.UI_Team_TeamInfoChange, self.CloseSelf) self:OpenCommonFoldView() self.mainTarget = context and context.mainTarget or MDL.Team.GetDefaultTarget() self.subTarget = context and context.subTarget or 0 local teamInfo = MDL.Team.GetTeamInfo() if IsServerDataNotNil(teamInfo) then local target = teamInfo.target local limit = teamInfo.limit self.mainTarget = target.mainTarget self.subTarget = target.subTarget self.levelLimit = limit.level self.powerLimit = limit.power UIUtils.SetLabelText(self.UICommonPopUp.txt_Title, Const_IDS["IDS_TeamUI_Myteam_TargetSetup"]) else self.levelLimit = 0 self.powerLimit = 0 UIUtils.SetLabelText(self.UICommonPopUp.txt_Title, Const_IDS["IDS_TeamUI_CreateTeam"]) end --self:RefreshLeftTargetScroll() self:ScrollPadCallback(self.levelLimit) self:RefreshCENumber(0) local targetIndex = MDL.Team.GetTeamPlayIndexByActivityId(self.mainTarget) if targetIndex > 7 then self.foldView.scroll_Main:MoveIndex(targetIndex) end self.foldView.scroll_Main:SelectIndex(targetIndex) self.keyBoardView = nil self.scrollPadView = nil end function UITeamCreatePanel:CloseSelf() self:CloseView() end function UITeamCreatePanel:RefreshRightTargetInfoPanel() UIUtils.SetActive(self.img_Line3.gameObject, not CTL.Team.IsSpecifiedTarget(self.mainTarget)) if not CTL.Team.IsSpecifiedTarget(self.mainTarget) then local TeamTargetInfo = MDL.Team.GetTeamTargetInfo(self.mainTarget, self.subTarget) self.txt_TeamTargetTitle.text = MDL.Team.GetTeamTargetName(self.mainTarget, self.subTarget) --次数 local countData = MDL.Activities.GetCountInfo(self.mainTarget) if countData.isDisplayCountTxt then if countData.curCount == -1 and countData.sumCount == -1 then UIUtils.SetLabelText(self.lab_JoinTimesNum, Const_IDS.IDS_Activity_NoLimitTimes) else self.lab_JoinTimesNum.text = countData.curCount .. "/" .. countData.sumCount end end --开启条件 local unlockParam, unlockDes = MDL.Team.GetTeamTargetUnlockInfo(self.mainTarget, self.subTarget) self.lab_AdviseLevelNum.text = unlockDes --时间 if #TeamTargetInfo.Time_Table <= 0 then self.lab_SecondTimeNum.text = nil UIUtils.SetLabelText(self.lab_StartTimeNum, Const_IDS.IDS_Activity_TimeShow01) else local date,time = UTL.Time.GetDateDescAndTime(TeamTargetInfo.Time_Table) self.lab_StartTimeNum.text = date self.lab_SecondTimeNum.text = time end self:RefreshTargetReward(TeamTargetInfo) UIUtils.SetActive(self.group_TeamTarget.gameObject, true) UIUtils.SetActive(self.group_Reward.gameObject, true) UIUtils.SetActive(self.group_TeamTargetNone.gameObject, false) else UIUtils.SetActive(self.group_TeamTarget.gameObject, false) UIUtils.SetActive(self.group_Reward.gameObject, false) UIUtils.SetActive(self.group_TeamTargetNone.gameObject, true) if self.mainTarget == 0 then UIUtils.SetLabelText(self.txt_NoneTarget, Const_IDS.IDS_TeamUI_Activity_NoTarget) else UIUtils.SetLabelText(self.txt_NoneTarget, Const_IDS.IDS_ContinuousLineOrder_TeamTarget) end end end function UITeamCreatePanel:RefreshTargetReward(targetInfo) local rewardData if table.containValue(MDL.MultiplayerDungeon.SubActivityId, targetInfo.ID) then local data = DataSheetManager.StageUnlockReward:GetDataByID(targetInfo.RewardShow) if data == nil then return end rewardData = data.Item_Table else local data = DataSheetManager.RewardClientShow:GetDataByClientShowID(targetInfo.RewardShow) if data == nil then return end rewardData = DataSheetUtil.GetRewardClientShowItemTable(data) end if self.scroll_TargetReward.Count > 0 then self.scroll_TargetReward:ClearCells() end for i, v in ipairs(rewardData) do local cellData if v.FristGothrough then cellData = {v, true} else cellData = {v, false} end if cellData then self.scroll_TargetReward:AddData(cellData, 0) end end end function UITeamCreatePanel:OnClickCreate() if CTL.Team.IsInTeam() then if not CTL.TeamMatch.IsInMatching() then MDL.Team.TeamChangeTargetReq(self.mainTarget, self.subTarget, {level = self.levelLimit, power = self.powerLimit}) else CTL.Tips.AddTipsMsg(Const_IDS["IDS_TeamMatch_CannotChange"]) end else MDL.Team.TeamCreateReq(self.mainTarget, self.subTarget, {level = self.levelLimit, power = self.powerLimit}) end end function UITeamCreatePanel:OnBackButtonPressed() self:OnButtonClicked(self.UICommonPopUp.btn_Close) end function UITeamCreatePanel:OnButtonClicked(comp) if comp == self.btn_CreateTeam then self:OnClickCreate() elseif comp == self.UICommonPopUp.btn_Close then self:CloseView() elseif comp == self.btn_CEEdit then if not self.keyBoardView then local maxLimit = DataSheetManager.ConstData:GetDataByID("TeamPowerMaxLimitMax").IntValue self.keyBoardView = self.subView:OpenView(GetViewClass(Const_UI_Lua.UIEnum.UIKeypad), {parentView = self, x = 350, y = 160, minNum = 0, maxNum = maxLimit}) end elseif comp == self.btn_LevelEdit then if not self.scrollPadView then self.scrollPadView = self.subView:OpenView(GetViewClass(Const_UI_Lua.UIEnum.UIScrollPad), {parentView = self, formerLevel = self.levelLimit, x = -120, y = 60}) end end end function UITeamCreatePanel:ExcuteKeyBoardBack(count, paramData) self:RefreshCENumber(count) end function UITeamCreatePanel:CloseKeyBoardView() self.keyBoardView:CloseView() self.keyBoardView = nil end function UITeamCreatePanel:CloseScrollPadView(index) self.scrollPadView:CloseView() self.scrollPadView = nil self:ScrollPadCallback(index) end function UITeamCreatePanel:RefreshCENumber(count) self.powerLimit = count if self.powerLimit <= 0 then self.powerLimit = 0 self.obj_CEInputField.text = UIUtils.GetLocalizedTxt(Const_IDS["IDS_TeamUI_ApplyLimit_None"]) return end local maxLimit = DataSheetManager.ConstData:GetDataByID("TeamPowerMaxLimitMax").IntValue if count > maxLimit then self.powerLimit = maxLimit end self.obj_CEInputField.text = self.powerLimit end function UITeamCreatePanel:ScrollPadCallback(index) if index <= 0 then UIUtils.SetLabelText(self.lab_LevelLimitNum, Const_IDS["IDS_TeamUI_ApplyLimit_None"]) self.levelLimit = 0 else local maxLimit = math.min(MDL.HeroSelect.GetTeamLevel() + 20, DataSheetManager.HeroLevelUp:GetDataCount()) if index > maxLimit then index = maxLimit end UIUtils.SetLabel(self.lab_LevelLimitNum, MDL.HeroSelect.GetTeamLevelName(index)) self.levelLimit = index end end function UITeamCreatePanel:OnCellSelect(scrollRect, index, cellTable, data) if scrollRect == self.scroll_TargetReward then UTL.ItemTips.ShowCommonTipsById(data[1].ItemID) end end function UITeamCreatePanel:OnCellInit(scrollRect, index, cellTable, data) if scrollRect == self.scroll_TargetReward then UTL.Item.SetItemCell(cellTable.item, data[1].ItemID, data[1].ItemNum) end end function UITeamCreatePanel:OpenCommonFoldView() self.foldView = self.LeftPanel:OpenView(GetViewClass(Const_UI_Lua.UIEnum.UICommonFoldView), {mainData = MDL.Team.GetTeamPlayListData(), parentView = self}) end function UITeamCreatePanel:initMainCellCallBack(scrollRect, cellTable, data, index) cellTable.lab_Check.text = data.MainTitle cellTable.lab_UnCheck.text = data.MainTitle UIUtils.SetActive(cellTable.Check.gameObject, false) UIUtils.SetActive(cellTable.UnCheck.gameObject, true) if data.Menu == CTL.Rank.MenuLevel.Single then UIUtils.SetActive(cellTable.Check.gameObject, false) UIUtils.SetActive(cellTable.UnCheck.gameObject, true) UIUtils.SetActive(cellTable.UnCheckmarkArrow.gameObject, false) UIUtils.SetActive(cellTable.CheckmarkArrow.gameObject, false) end end function UITeamCreatePanel:initSubCellCallBack(scrollRect, cellTable, data, index) UIUtils.SetActive(cellTable.Check.gameObject, false) UIUtils.SetActive(cellTable.UnCheck.gameObject, true) UIUtils.SetLabel(cellTable.lab_Sub, UTL.Color.FormatTextByColor(UNSELECT_COLOR, data.SubTitle)) end function UITeamCreatePanel:clickMainCellCallBack(scrollRect, cellTable, target, data, index, isFold) if data.Menu == CTL.Rank.MenuLevel.Single then UIUtils.SetActive(cellTable.Check.gameObject, true) UIUtils.SetActive(cellTable.UnCheck.gameObject, false) self.mainTarget = data.ID self.subTarget = 0 self:RefreshRightTargetInfoPanel() elseif data.Menu == CTL.Rank.MenuLevel.Double then if not self.subTarget or self.subTarget == 0 then self.subTarget = 1 end scrollRect:SelectIndex(index + self.subTarget) scrollRect:MoveIndex(index + self.subTarget) end end function UITeamCreatePanel:clickSubCellCallBack(scrollRect, cellTable, target, data, index) if data.Menu == CTL.Rank.MenuLevel.Double then self.mainTarget = data.ID self.subTarget = data.subId UIUtils.SetLabel(cellTable.lab_Sub, UTL.Color.FormatTextByColor(SELECTED_COLOR, data.SubTitle)) self:RefreshRightTargetInfoPanel() end end return UITeamCreatePanel