require("Base/BasePanel") local FuXingGaoZhao = Inherit(BasePanel) local this = FuXingGaoZhao local sortingOrder = 0 local rewardList = {} local itemPreList={} --item预设容器 local data local func local timeData = string.split(ConfigManager.GetConfigDataByKey(ConfigName.SpecialConfig,"Id",109).Value,"#") --初始化组件(用于子类重写) function FuXingGaoZhao:InitComponent() self.backBtn = Util.GetGameObject(self.gameObject,"btnBack") self.effect = Util.GetGameObject(self.gameObject,"UI_effect_LuckyCatPanel_normal") self.time = Util.GetGameObject(self.gameObject,"Time"):GetComponent("Text") self.getBtn = Util.GetGameObject(self.gameObject,"getBtn") FuXingGaoZhaoManager.InitRewardData() self.mid = Util.GetGameObject(self.gameObject,"mid") if #rewardList == 0 then for i = 1, self.mid.transform.childCount do table.insert(rewardList,self.mid.transform:GetChild(i-1)) end end self.UpView = SubUIManager.Open(SubUIConfig.UpView, self.gameObject.transform, { showType = UpViewOpenType.ShowLeft}) end --绑定事件(用于子类重写) function FuXingGaoZhao:BindEvent() Util.AddClick(self.backBtn,function () CheckRedPointStatus(RedPointType.FuXingGaoZhao) self:ClosePanel() end) Util.AddClick(self.getBtn,function () if data.ActState == 0 then local configData = ConfigManager.GetConfigDataByKey(ConfigName.SpecialConfig,"Id",110).Value local strings = string.split(configData,"#") local costId, costNum = tonumber(strings[1]),tonumber(strings[2]) if costNum > BagManager.GetTotalItemNum(costId) then JumpManager.GoJump(36003) else local itemName = ConfigManager.GetConfigData(ConfigName.ItemConfig,costId).Name MsgPanel.ShowTwo(string.format(Language[12243],costNum,GetLanguageStrById(itemName)), nil, function() NetManager.FuXingStoreBuyRequest(data.activityId,function () PopupTipPanel.ShowTip(Language[12244]) FuXingGaoZhao:Refresh() end) end) end elseif data.ActState == 1 then NetManager.GetActivityRewardRequest(-1,data.activityId,function (drop) UIManager.OpenPanel(UIName.RewardItemPopup, drop, 1,function() FuXingGaoZhao:Refresh() end) end) end end) end --添加事件监听(用于子类重写) function FuXingGaoZhao:AddListener() end --移除事件监听(用于子类重写) function FuXingGaoZhao:RemoveListener() end function FuXingGaoZhao:OnSortingOrderChange() Util.AddParticleSortLayer(self.effect, self.sortingOrder - sortingOrder) sortingOrder = self.sortingOrder end --界面打开时调用(用于子类重写) function FuXingGaoZhao:OnOpen(_func) func = _func self.UpView:OnOpen({ showType = UpViewOpenType.ShowLeft, panelType = PanelType.Main}) end -- 打开,重新打开时回调 function FuXingGaoZhao:OnShow() FuXingGaoZhao:Refresh() end function FuXingGaoZhao:Refresh() data = FuXingGaoZhaoManager.GetData() FuXingGaoZhao:SetBtn() if data.ActState == 0 then FuXingGaoZhao:SetTime() self.time.gameObject:SetActive(true) else self.time.gameObject:SetActive(false) end for i = 1, #rewardList do FuXingGaoZhao:SetSingleReward(rewardList[i],data.rewards[i],i) end end function FuXingGaoZhao:SetBtn() local text = Util.GetGameObject(self.getBtn,"Text"):GetComponent("Text") local redPoint = Util.GetGameObject(self.getBtn,"redPoint") if data.ActState == 0 then text.text = Language[12245] self.getBtn:SetActive(true) redPoint:SetActive(false) elseif data.ActState == 1 then text.text = Language[11948] local bool = FuXingGaoZhaoManager.CheckRedPoint() self.getBtn:SetActive(bool) redPoint:SetActive(bool) elseif data.ActState == 2 then self.getBtn:SetActive(false) end end function FuXingGaoZhao:SetTime() if self.timer then self.timer:Stop() self.timer = nil end local time = data.startTime + tonumber(timeData[1])*86400 - GetTimeStamp() self.time.text = string.format(Language[12246],TimeToFelaxible(time)) self.timer = Timer.New(function() time = time - 1 if time < 1 then self.timer:Stop() self.timer = nil self:ClosePanel() end self.time.text = string.format(Language[12246],TimeToFelaxible(time)) end, 1, -1, true) self.timer:Start() end function FuXingGaoZhao:SetSingleReward(go,sdata,index) local reward = Util.GetGameObject(go,"GameObject") local mask = Util.GetGameObject(go,"mask") -- LogBlue("index:"..index.." go:"..tostring(go.name).." 天数:"..tostring(NumToSimplenessFont[index])) Util.GetGameObject(go,"Text"):GetComponent("Text").text = string.format(Language[10528],NumToSimplenessFont[index]) if not itemPreList[index] then itemPreList[index] = SubUIManager.Open(SubUIConfig.ItemView,reward.transform) end itemPreList[index]:OnOpen(false, sdata.Reward, 0.85,false, false, false, sortingOrder) mask:SetActive(sdata.State == 1) local effect = Util.GetGameObject(itemPreList[index].gameObject,"effects/UI_Effect_jinkuang_Fang") itemPreList[index]:SetEffectLayer(self.sortingOrder) effect:SetActive((data.ActState == 1) and (sdata.State == 0) and (sdata.Progress <= GetTimeStamp())) end --界面关闭时调用(用于子类重写) function FuXingGaoZhao:OnClose() if self.timer then self.timer:Stop() self.timer = nil end if func then func() func = nil end end --界面销毁时调用(用于子类重写) function FuXingGaoZhao:OnDestroy() if self.timer then self.timer:Stop() self.timer = nil end itemPreList={} rewardList={} SubUIManager.Close(self.UpView) end return FuXingGaoZhao