local UpperMonthCard = {} local sortingOrder = 0 local chargeConfig = ConfigManager.GetConfig(ConfigName.RechargeCommodityConfig) local globalActivity = ConfigManager.GetConfig(ConfigName.GlobalActivity) --- 本地枚举 local ImgType = { [78] = { bg = "scene_floor_84", mask = "LZE256", rewardBg = "X1_hunluanzhizhi_zhipeilidiban_02", downBg = "y_yjj_128kuang001", rewardPreview = "X1_shenjing_guaiqiaming", rewardPreviewText = "y_yjj_128kuang005", reward = "y_yjj_1280", iconId = 15, }, [79] = { bg = "scene_floor_84", mask = "LZH32", rewardBg = "X1_hunluanzhizhi_zhipeilidiban_01", downBg = "s_sanshibei_kuang_01", rewardPreview = "X1_shenjing_guaiqiaming", rewardPreviewText = "s_sanshibei_biaotizi", reward = "y_yjj_3280", iconId = 15, }, } local state = { [0] = {bg = "X1_zhanling_pata_bt_03",text = "",red = false}, [1] = {bg = "X1_zhanling_pata_bt_03",text = "领 取",red = true}, [2] = {bg = "X1_zhanling_pata_bt_04",text = "已领取",red = false}, } function UpperMonthCard:New(gameObject) local b = {} b.gameObject = gameObject b.transform = gameObject.transform setmetatable(b, { __index = UpperMonthCard }) return b end --初始化组件(用于子类重写) function UpperMonthCard:InitComponent() self.spLoader = SpriteLoader.New() self.Bg = Util.GetGameObject(self.gameObject, "Bg/bg"):GetComponent("Image") self.mask = Util.GetGameObject(self.gameObject, "Bg/mask"):GetComponent("Image") self.chargeIconType = Util.GetGameObject(self.gameObject, "Bg/payBack/icon"):GetComponent("Image") self.chargeType = Util.GetGameObject(self.gameObject, "Bg/payBack/type"):GetComponent("Image") --- 不同的充值行为显示部分 self.middlePart = Util.GetGameObject(self.gameObject, "Bg/partDown/Bg"):GetComponent("Image") self.titleDi = Util.GetGameObject(self.middlePart.transform, "titleDi"):GetComponent("Image") self.titleImg = Util.GetGameObject(self.titleDi.transform, "title"):GetComponent("Image") self.infoBg = Util.GetGameObject(self.middlePart.transform, "middle"):GetComponent("Image") self.grid = Util.GetGameObject( self.middlePart.transform, "middle/scroller/grid") self.gridRect = self.grid:GetComponent("RectTransform") self.itemPre = Util.GetGameObject(self.middlePart.transform, "middle/itemPre") self.itemHeight = self.itemPre.transform.rect.height self.btnBuy = Util.GetGameObject(self.middlePart.transform, "btnBuy") self.btnBuyImage = self.btnBuy:GetComponent("Image") self.textBuy = Util.GetGameObject(self.btnBuy, "Text"):GetComponent("Text") self.btnBuyRed = Util.GetGameObject(self.btnBuy, "red") self.btnHelp = Util.GetGameObject(self.gameObject, "Bg/helpBtn") self.helpPosition = self.btnHelp:GetComponent("RectTransform").localPosition self.tip = Util.GetGameObject(self.gameObject, "Bg/tip") ---- 奖励列表 self.itemLst = {} end --添加事件监听(用于子类重写) function UpperMonthCard:AddListener() Game.GlobalEvent:AddEvent(GameEvent.Activity.OnActivityProgressStateChange,self.RefreshPanel,self) end --移除事件监听(用于子类重写) function UpperMonthCard:RemoveListener() Game.GlobalEvent:RemoveEvent(GameEvent.Activity.OnActivityProgressStateChange,self.RefreshPanel,self) end --绑定事件(用于子类重写) function UpperMonthCard:BindEvent() Util.AddClick(self.btnHelp,function() UIManager.OpenPanel(UIName.HelpPopup,self.actConfig.HelpId,self.helpPosition.x,self.helpPosition.y) end) Util.AddOnceClick(self.btnBuy, function() if self.actInfo.value < 2 then PayManager.Pay(self.baseType, function(id) self:RechargeSuccessFunc(id) self:OnShow() end) elseif self.isGet then NetManager.GetActivityRewardRequest(0,self.actInfo.activityId,function(msg) UIManager.OpenPanel(UIName.RewardItemPopup, msg, 1,function () self:OnShow() end) end) end if self.actType == 78 then CheckRedPointStatus(RedPointType.jijin128) else CheckRedPointStatus(RedPointType.jijin328) end end) end --界面打开时调用(用于子类重写) function UpperMonthCard:OnOpen(_activityConfig,_index,parent) self.actConfig = _activityConfig self.pageIndex = _index self.parent = parent end function UpperMonthCard:OnSortingOrderChange(_sortingOrder) self.sortingOrder = _sortingOrder for k,v in pairs(self.itemLst) do v.itemView:SetEffectLayer(self.sortingOrder) end end -- 打开,重新打开时回调 function UpperMonthCard:OnShow(_sortingOrder) self.gameObject:SetActive(true) self.sortingOrder = _sortingOrder self.actType = self.actConfig.ActiveType -- self.actInfo = ActivityGiftManager.GetActivityInfoByType(self.actType) self.actInfo = CommonActPageManager.GetData(self.actType) if not self.actInfo then self.parent:ClosePanel() return end self.baseType = globalActivity[self.actInfo.activityId].CanBuyRechargeId[1] self:SetPanelType() self:RefreshPanel() if self.actType==78 then PlayerPrefs.SetInt(PlayerManager.uid.."chaozhijijin128",1) CheckRedPointStatus(RedPointType.jijin128) elseif self.actType==79 then PlayerPrefs.SetInt(PlayerManager.uid.."chaozhijijin328",1) CheckRedPointStatus(RedPointType.jijin328) end end function UpperMonthCard:RefreshPanel() self:SetRewardInfo() self:SetBuyState() end --- 设置不同的显示界面 function UpperMonthCard:SetPanelType() self.Bg.sprite = self.spLoader:LoadSprite(ImgType[self.actType].bg) self.mask.sprite = self.spLoader:LoadSprite(ImgType[self.actType].mask) --self.chargeIconType.sprite = self.spLoader:LoadSprite(GetSpriteNameByItemId(ImgType[self.actType].iconId)) self.chargeIconType.sprite = self.spLoader:LoadSprite(GetSpriteNameByItemId(15)) self.chargeType.sprite = self.spLoader:LoadSprite(ImgType[self.actType].reward) --屏蔽基金额外奖励显示 self.chargeIconType.gameObject:SetActive(false) self.chargeType.gameObject:SetActive(false) self.middlePart.sprite = self.spLoader:LoadSprite(ImgType[self.actType].rewardBg) self.titleDi.sprite = self.spLoader:LoadSprite(ImgType[self.actType].rewardPreview) self.titleImg.sprite = self.spLoader:LoadSprite(ImgType[self.actType].rewardPreviewText) self.infoBg.sprite = self.spLoader:LoadSprite(ImgType[self.actType].downBg) self.btnHelp.gameObject:SetActive(self.actConfig.HelpId and self.actConfig.HelpId > 0) end --- 设置不同界面的奖励信息 function UpperMonthCard:SetRewardInfo() local mission = self.actInfo.rewards if not self.itemLst then self.itemLst = {} end for i = 1,#mission do if not self.itemLst[i] then self.itemLst[i] = {} self.itemLst[i].go = newObjToParent(self.itemPre,self.grid) self.itemLst[i].name = Util.GetGameObject(self.itemLst[i].go, "name"):GetComponent("Text") self.itemLst[i].itemPos = Util.GetGameObject(self.itemLst[i].go, "itemPos") self.itemLst[i].itemView = SubUIManager.Open(SubUIConfig.ItemView,self.itemLst[i].itemPos.transform) self.itemLst[i].yiGet = Util.GetGameObject(self.itemLst[i].go, "yilingqu") self.itemLst[i].redPoint = Util.GetGameObject(self.itemLst[i].go, "redPoint") end self.itemLst[i].go.gameObject:SetActive(true) self.itemLst[i].name.text = string.format("第%s天",NumToChinese[i]) local reward = ConfigManager.GetConfigDataByDoubleKey(ConfigName.LuxuryFundConfig,"Type",self.baseType,"Day",i).reward[1] self.itemLst[i].itemView:OnOpen(false, reward, 1.1, false, false, false, self.sortingOrder) --1 已领取 0 未领 -- LogGreen(tostring(mission[i].missionId).." ".."state:"..tostring(mission[i].otherData.State)) self.itemLst[i].yiGet.gameObject:SetActive(false) if mission[i].otherData.State == 1 then self.itemLst[i].redPoint.gameObject:SetActive(false) elseif mission[i].otherData.State == 2 then self.itemLst[i].redPoint.gameObject:SetActive(true) elseif mission[i].otherData.State == 3 then self.itemLst[i].yiGet.gameObject:SetActive(true) self.itemLst[i].redPoint.gameObject:SetActive(false) end end local v = self.gridRect.sizeDelta v.y = (math.ceil(#self.itemLst/5) * self.itemHeight) + ((math.ceil(#self.itemLst/5)) * 94) self.gridRect.sizeDelta = v end --- 根据是否购买了显示信息 function UpperMonthCard:SetBuyState() LogRed("value:"..tostring(self.actInfo.value)) if self.actInfo.value < 2 then self.btnBuy.gameObject:SetActive(true) self.btnBuyImage.sprite = self.spLoader:LoadSprite(state[0].bg) self.textBuy.text = MoneyUtil.GetMoneyUnitNameWithMoney(chargeConfig[self.baseType].Price) self.btnBuyRed.gameObject:SetActive(false) self.tip.gameObject:SetActive(false) else self.isGet = self.actInfo.FreelyData.isGet self.isAllGet = self.actInfo.FreelyData.isAllGet if self.isGet then self.btnBuy.gameObject:SetActive(true) self.btnBuyImage.sprite = self.spLoader:LoadSprite(state[1].bg) self.textBuy.text = state[1].text self.btnBuyRed.gameObject:SetActive(true) self.tip.gameObject:SetActive(false) else self.btnBuy.gameObject:SetActive(true) self.btnBuyImage.sprite = self.spLoader:LoadSprite(state[2].bg) self.textBuy.text = state[2].text self.btnBuyRed.gameObject:SetActive(false) self.tip.gameObject:SetActive(false) end if self.isAllGet then self.btnBuy.gameObject:SetActive(false) self.tip.gameObject:SetActive(true) end end end -- 充值成功回调 function UpperMonthCard:RechargeSuccessFunc(id) FirstRechargeManager.RefreshAccumRechargeValue(id) OperatingManager.RefreshGiftGoodsBuyTimes(GoodsTypeDef.DemonCrystal, id) end --界面关闭时调用(用于子类重写) function UpperMonthCard:OnClose() self.gameObject:SetActive(false) end --界面销毁时调用(用于子类重写) function UpperMonthCard:OnDestroy() self.spLoader:Destroy() for k,v in pairs(self.itemLst) do SubUIManager.Close(v.itemView) end Util.ClearChild(self.grid.transform) self.itemLst = {} end return UpperMonthCard