XUiPanelNewbieActive = XClass(nil, "XUiPanelNewbieActive") local normalSize = CS.XGame.ClientConfig:GetInt("NewPlayerTaskSmallSize") local specialSize = CS.XGame.ClientConfig:GetInt("NewPlayerTaskBigSize") function XUiPanelNewbieActive:Ctor(ui, rootUi, index, stageInfo) self.GameObject = ui.gameObject self.Transform = ui.transform self:InitAutoScript() self.RootUi = rootUi self.Index = index self.TxtValue.text = stageInfo self.ImgActiveRect = self.GridCommon:GetComponent("RectTransform") end -- auto -- Automatic generation of code, forbid to edit function XUiPanelNewbieActive:InitAutoScript() self:AutoInitUi() self:AutoAddListener() end function XUiPanelNewbieActive:AutoInitUi() self.BtnActive = self.Transform:Find("BtnActive"):GetComponent("Button") self.TxtValue = self.Transform:Find("TxtValue"):GetComponent("Text") self.PanelEffect = self.Transform:Find("PanelEffect") self.ImgRe = self.Transform:Find("ImgRe"):GetComponent("Image") self.GridCommon = self.Transform:Find("Grid128") end function XUiPanelNewbieActive:RegisterClickEvent(uiNode, func) if func == nil then XLog.Error("XUiPanelNewbieActive:RegisterClickEvent函数参数错误:参数func不能为空") return end if type(func) ~= "function" then XLog.Error("XUiPanelNewbieActive:RegisterClickEvent函数错误, 参数func需要是function类型, func的类型是" .. type(func)) end local listener = function(...) func(self, ...) end CsXUiHelper.RegisterClickEvent(uiNode, listener) end function XUiPanelNewbieActive:AutoAddListener() self:RegisterClickEvent(self.BtnActive, self.OnBtnActiveClick) end -- auto function XUiPanelNewbieActive:UpdateNewbieActiveView(currentActiveness, maxActiveness) self.CurrentActiveness = currentActiveness self.MaxActiveness = maxActiveness local newbieActiveness = XTaskConfig.GetTaskNewbieActivenessTemplate() local rewardId = newbieActiveness.RewardId[self.Index or 1] local count = #newbieActiveness.RewardId local data = XRewardManager.GetRewardList(rewardId) if #data >= 1 then if not self.GridComp then self.GridComp = XUiGridCommon.New(self.RootUi, self.GridCommon) end self.GridComp:Refresh(data[1]) self.GridComp:ShowCount(false) end local adjustSizeX = (self.Index == count) and specialSize or normalSize self.ImgActiveRect.sizeDelta = CS.UnityEngine.Vector2(adjustSizeX, adjustSizeX) local tmpNewbieActiveness = XTaskConfig.GetTaskNewbieActivenessTemplate() local activeness = tmpNewbieActiveness.Activeness[self.Index or 1] if XDataCenter.TaskManager.CheckNewbieActivenessRecord(activeness) then self:ChangeActiveState(true, false) else if currentActiveness >= activeness then self:ChangeActiveState(false, true) else self:ChangeActiveState(false, false) end end end function XUiPanelNewbieActive:ChangeActiveState(imgRe, effect) self.ImgRe.gameObject:SetActive(imgRe) self.PanelEffect.gameObject:SetActive(effect) end function XUiPanelNewbieActive:OnBtnActiveClick() if self.CurrentActiveness and self.MaxActiveness then local newbieActiveness = XTaskConfig.GetTaskNewbieActivenessTemplate() local activeness = newbieActiveness.Activeness[self.Index or 1] local templateId = newbieActiveness.RewardId[self.Index or 1] local rewardList = XRewardManager.GetRewardList(templateId) if XDataCenter.TaskManager.CheckNewbieActivenessRecord(activeness) then--已经领取 self:ShowTipsByType(rewardList) else if self.CurrentActiveness >= activeness then--可领取 XDataCenter.TaskManager.GetNewPlayerRewardReq(activeness, rewardList, function() self.RootUi:RefreshBottomView() end) else--还不能领取 self:ShowTipsByType(rewardList) end end end end function XUiPanelNewbieActive:ShowTipsByType(rewardList) for _, v in pairs(rewardList or {}) do local templateId = v.TemplateId local goodsShowParams = XGoodsCommonManager.GetGoodsShowParamsByTemplateId(templateId) if goodsShowParams.RewardType == XRewardManager.XRewardType.Character then if self.RootUi.Ui.UiData.UiType == CsXUiType.Tips then self.RootUi:Close() end XLuaUiManager.Open("UiCharacterDetail", templateId) elseif goodsShowParams.RewardType == XRewardManager.XRewardType.Equip then if self.RootUi.Ui.UiData.UiType == CsXUiType.Tips then self.RootUi:Close() end XLuaUiManager.Open("UiEquipDetail", templateId, true) else XLuaUiManager.Open("UiTip", templateId) end break end end return XUiPanelNewbieActive