local DailyRechargePanel = quick_class("DailyRechargePanel", BasePanel) local actRewardConfig = ConfigManager.GetConfig(ConfigName.ActivityRewardConfig) local kMaxReward = 4 local index = 0 local cursortingOrder local isFirstOpen = false local missionIndex = { [18] = {selectIma = "r_mrcz_18_zh",selectImaRMB = "r_mrcz_18_zh",defaultIma = "r_mrcz_1801_zh",defaultImaRMB = "r_mrcz_1801_zh"}, [30] = {selectIma = "r_mrcz_30_zh",selectImaRMB = "r_mrcz_30_zh",defaultIma = "r_mrcz_3001_zh",defaultImaRMB = "r_mrcz_3001_zh"}, [68] = {selectIma = "r_mrcz_68_zh",selectImaRMB = "r_mrcz_68_zh",defaultIma = "r_mrcz_6801_zh",defaultImaRMB = "r_mrcz_6801_zh"}, [98] = {selectIma = "r_mrcz_98_zh",selectImaRMB = "r_mrcz_98_zh",defaultIma = "r_mrcz_9801_zh",defaultImaRMB = "r_mrcz_9801_zh"}, [128] = {selectIma = "r_mrcz_128_zh",selectImaRMB = "r_mrcz_128_zh",defaultIma = "r_mrcz_12801_zh",defaultImaRMB = "r_mrcz_12801_zh"}, [198] = {selectIma = "r_mrcz_198_zh",selectImaRMB = "r_mrcz_198_zh",defaultIma = "r_mrcz_19801_zh",defaultImaRMB = "r_mrcz_19801_zh"}, [328] = {selectIma = "r_mrcz_328_zh",selectImaRMB = "r_mrcz_328_zh",defaultIma = "r_mrcz_32801_zh",defaultImaRMB = "r_mrcz_32801_zh"}, [648] = {selectIma = "r_mrcz_648_zh",selectImaRMB = "r_mrcz_648_zh",defaultIma = "r_mrcz_64801_zh",defaultImaRMB = "r_mrcz_64801_zh"}, [50] = {selectIma = "r_mrcz_50_zh",selectImaRMB = "r_mrcz_50_zh",defaultIma = "r_mrcz_5001_zh",defaultImaRMB = "r_mrcz_5001_zh"}, [100] = {selectIma = "r_mrcz_100_zh",selectImaRMB = "r_mrcz_100_zh",defaultIma = "r_mrcz_10001_zh",defaultImaRMB = "r_mrcz_10001_zh"}, } function DailyRechargePanel:InitComponent() self.spLoader = SpriteLoader.New() cursortingOrder = 0 self.backBtnNew = Util.GetGameObject(self.transform, "BG") self.backBtn = Util.GetGameObject(self.transform, "frame") self.title = Util.GetGameObject(self.backBtn, "bg/title"):GetComponent("Image") self.select = Util.GetGameObject(self.backBtn, "bg/select") --self.selectIma = Util.GetGameObject(self.select, "Text"):GetComponent("Image") self.selectIma = Util.GetGameObject(self.select, "Text"):GetComponent("Text") self.grid = Util.GetGameObject(self.backBtn, "bg/grid") self.items = {} for i = 1,self.grid.transform.childCount do self.items[i] = {} self.items[i].go = Util.GetGameObject(self.grid,"item"..i) --self.items[i].priceText = Util.GetGameObject(self.items[i].go,"Text"):GetComponent("Image") self.items[i].priceText = Util.GetGameObject(self.items[i].go,"Text"):GetComponent("Text") self.items[i].redpot = Util.GetGameObject(self.items[i].go,"red") end --提示框 self.titleParent = Util.GetGameObject(self.backBtn, "bg/Image") self.titleParent.gameObject:SetActive(true) self.titleIcon = Util.GetGameObject(self.titleParent, "icon"):GetComponent("Image") self.titleText = Util.GetGameObject(self.titleParent, "Text"):GetComponent("Text") self.extra = Util.GetGameObject(self.backBtn,"bg/descbg") self.extraIcon = Util.GetGameObject(self.extra,"extraIcon"):GetComponent("Image") local extraTip1 = Util.GetGameObject(self.extra,"tip1"):GetComponent("Text") local extraTip2 = Util.GetGameObject(self.extra,"tip"):GetComponent("Text") extraTip1.gameObject:SetActive(false) extraTip2.gameObject:SetActive(false) if ServerConfigManager.IsSettingActive(ServerConfigManager.SettingConfig.CURVED_TEXT_CODE) then self.extraTip = extraTip2 else self.extraTip = extraTip1 end self.extraTip.gameObject:SetActive(true) self.rewardContent = {} self.rewardContentEffect = {} self.rewardContentbg = {} self.rewardList = {} for i = 1, kMaxReward do self.rewardContent[i] = Util.GetGameObject(self.backBtn, "bg/rewardContent/itemPos_" .. i) self.rewardContentEffect[i] = Util.GetGameObject(self.rewardContent[i], "Kuang") self.rewardContentbg[i] = Util.GetGameObject(self.rewardContent[i], "Image") effectAdapte(self.rewardContentEffect[i]) self.rewardList[i] = SubUIManager.Open(SubUIConfig.ItemView, self.rewardContent[i].transform) end self.dealBtn = Util.GetGameObject(self.backBtn,"bg/dealBtn") self.dealText = Util.GetGameObject(self.dealBtn, "Text"):GetComponent("Text") self.dealTipText = Util.GetGameObject(self.dealBtn, "tip"):GetComponent("Text") self.UI_effect_DailyRechargePanel_particle = Util.GetGameObject(self.transform, "frame/UI_effect_DailyRechargePanel_particle") if self.moneyNum then SubUIManager.Close(self.moneyNum) self.moneyNum = nil end if not self.moneyNum then self.moneyNum = SubUIManager.Open(SubUIConfig.MoneyNumView, self.extra.transform, 0, MoneyNumViewType.Image_Horizontal, "LevelFont", 42, 0.85, Vector2.New(60, 100), Vector2.New(20, -7.44), MoneyNumViewImageType.Big_1) end self.moneyNum.transform:SetSiblingIndex(2) end function DailyRechargePanel:BindEvent() Util.AddClick(self.backBtnNew, function() if not isFirstOpen then self:ClosePanel() end end) Util.AddClick(self.dealBtn, function() if not isFirstOpen then self:OnDealBtnClicked() end end) for i = 1, #self.items do Util.AddClick(self.items[i].go, function() if i ~= index then index = i self:RefreshPanel() end end) end end function DailyRechargePanel:OnOpen(actType) self.actType = actType LogGreen("self.actType:"..self.actType) self.data = {} if self.actType == ActivityTypeDef.DailyRecharge then self.data.title = "r_mrcz_biaoti_zh" self.data.tip = "免费领取1次" self.data.tip2 = "免费领取1次" else self.data.title = "r_yunmenghaoli" self.data.tip = "每档限领1次" self.data.tip2 = "每日仅限1次" end isFirstOpen = true Timer.New(function () isFirstOpen = false end, 1.5):Start() end function DailyRechargePanel:AddListener() end function DailyRechargePanel:RemoveListener() end function DailyRechargePanel:OnSortingOrderChange() Util.AddParticleSortLayer( self.UI_effect_DailyRechargePanel_particle, self.sortingOrder - cursortingOrder) for i = 1, #self.rewardContentEffect do Util.AddParticleSortLayer( self.rewardContentEffect[i], self.sortingOrder - cursortingOrder) end cursortingOrder = self.sortingOrder end function DailyRechargePanel:OnShow() self.actInfo = ActivityGiftManager.GetActivityTypeInfo(self.actType) self.title.sprite = self.spLoader:LoadSprite(self.data.title) self.title:SetNativeSize() self.titleText.text = self.data.tip if self.actType==93 then local freshTime = self.actInfo.endTime - GetTimeStamp() local update = function() self.dealTipText.text = Language[10023]..TimeToFelaxible(freshTime) end update() self.localTimer = Timer.New(function () freshTime = freshTime - 1 update() if freshTime <= 0 then self:ClosePanel() end end, 1, -1, true) self.localTimer:Start() -- self.dealTipText.text = self.data.tip2 else self.dealTipText.gameObject:SetActive(false) end if not self.actInfo then self:ClosePanel() return end self.activityId = self.actInfo.activityId -- if self.actType == ActivityTypeDef.yunmenghaoli then PlayerPrefs.SetInt(PlayerManager.uid.."_YunMeng_Check"..self.activityId, 1) CheckRedPointStatus(RedPointType.yunmenghaoli) end -- if #self.actInfo.mission > 1 then self.grid.gameObject:SetActive(true) else self.grid.gameObject:SetActive(false) end self:SetGrid() self:RefreshPanel() end function DailyRechargePanel:SetGrid() LogGreen("#self.actInfo.mission:"..#self.actInfo.mission) for i = 1, math.max(#self.actInfo.mission,#self.items) do if not self.items[i] then return end if not self.actInfo.mission[i] then self.items[i].go.gameObject:SetActive(false) else self.items[i].go.gameObject:SetActive(true) local config = actRewardConfig[self.actInfo.mission[i].missionId] if config and config.ActivityId == self.activityId then -- if MoneyUtil.MT == MoneyType.RMB then -- self.items[i].priceText.sprite = self.spLoader:LoadSprite(missionIndex[config.Values[1][1]].defaultImaRMB) -- else -- self.items[i].priceText.sprite = self.spLoader:LoadSprite(missionIndex[config.Values[1][1]].defaultIma) -- end self.items[i].priceText.text = MoneyUtil.GetMoneyUnitNameWithMoney(config.Values[1][1]) self.items[i].priceText:SetNativeSize() else self.items[i].go.gameObject:SetActive(false) end end end index = 0 for i = 1,#self.actInfo.mission do if self.actInfo.mission[i].state == 2 then index = i break end end if index == 0 then for i = 1,#self.actInfo.mission do if self.actInfo.mission[i].state == 0 then index = i break end end end if index == 0 then index = #self.actInfo.mission end end function DailyRechargePanel:OnClose() index = 0 end function DailyRechargePanel:OnDestroy() self.spLoader:Destroy() if self.moneyNum then SubUIManager.Close(self.moneyNum) self.moneyNum = nil end index = 0 end local icon = { [0] = "r_mrcz_zi_111_zh", [1] = "r_mrcz_zi_33_zh", [2] = "r_mrcz_danbichognzhi", } function DailyRechargePanel:SetSelectBtn() self.select.gameObject:SetActive(true) self.select.transform:SetParent(self.items[index].go.transform) self.select.transform:SetSiblingIndex(1) self.select.transform.localPosition = Vector3.zero self.selectIma.text = MoneyUtil.GetMoneyUnitNameWithMoney(actRewardConfig[self.actInfo.mission[index].missionId].Values[1][1]) -- if MoneyUtil.MT == MoneyType.RMB then -- self.selectIma.sprite = self.spLoader:LoadSprite(missionIndex[actRewardConfig[self.actInfo.mission[index].missionId].Values[1][1]].selectImaRMB) -- else -- self.selectIma.sprite = self.spLoader:LoadSprite(missionIndex[actRewardConfig[self.actInfo.mission[index].missionId].Values[1][1]].selectIma) -- end --self.selectIma:SetNativeSize() end function DailyRechargePanel:RefreshPanel() self:SetSelectBtn() self.missionInfo = self.actInfo.mission[index] local actRewardConfig1 = actRewardConfig[self.missionInfo.missionId] if self.actType == ActivityTypeDef.DailyRecharge then self.titleIcon.gameObject:SetActive(true) self.moneyNum:SetOffsetPosition(Vector2.New(480, -90)) self.moneyNum:SetOffsetRotation(Vector3.New(0, 0, -10)) if self.missionInfo.state == 0 then self.dealTipText.gameObject:SetActive(true) if DailyRechargeManager.ReceivedEnabled(self.missionInfo.missionId) then self.extraIcon.sprite = self.spLoader:LoadSprite(icon[1]) self.extraTip.gameObject:SetActive(false) self.dealText.text = Language[10018] self.moneyNum.gameObject:SetActive(false) else self.extraIcon.sprite = self.spLoader:LoadSprite(icon[0]) self.extraTip.gameObject:SetActive(true) self.extraTip.text = actRewardConfig1.ContentsShow self.dealText.text = "立即前往" self.moneyNum.gameObject:SetActive(true) local dailyActInfo = ActivityGiftManager.GetActivityTypeInfo(ActivityTypeDef.DailyRecharge) self.moneyNum:SetNumShow(1,(actRewardConfig1.Values[1][1] - dailyActInfo.value)) end else self.extraIcon.sprite = self.spLoader:LoadSprite(icon[1]) self.extraTip.gameObject:SetActive(false) self.dealText.text = Language[10101] self.moneyNum.gameObject:SetActive(false) self.dealTipText.gameObject:SetActive(false) end else self.moneyNum:SetOffsetPosition(Vector2.New(436.4, -99.24)) self.moneyNum:SetOffsetRotation(Vector3.New(0, 0, 0)) self.titleIcon.gameObject:SetActive(false) self.extraTip.gameObject:SetActive(true) self.extraIcon.sprite = self.spLoader:LoadSprite(icon[2]) self.moneyNum.gameObject:SetActive(true) self.moneyNum:SetNumShow(1,actRewardConfig1.Values[1][1]) self.moneyNum:SetRateEnabled(false) self.extraTip.text = actRewardConfig1.ContentsShow self.dealTipText.gameObject:SetActive(true) if self.missionInfo.state == 0 then self.dealText.text = "立即前往" elseif self.missionInfo.state == 2 then self.dealText.text = Language[10018] else self.dealTipText.gameObject:SetActive(false) self.dealText.text = Language[10101] end end self.extraIcon:SetNativeSize() table.walk(self.rewardList, function(rewardPosItem) rewardPosItem.gameObject:SetActive(false) end) table.walk(self.rewardContent, function(rewardPosItem) rewardPosItem.gameObject:SetActive(false) end) table.walk(self.rewardContentbg, function(rewardPosItem) rewardPosItem.gameObject:SetActive(false) end) for i, rewardInfo in ipairs(actRewardConfig1.Reward) do self.rewardContent[i].gameObject:SetActive(true) end self.thread = coroutine.start(function() coroutine.wait(0.2) for i, rewardInfo in ipairs(actRewardConfig1.Reward) do self.rewardList[i]:OnOpen(false, rewardInfo, 1.1) self.rewardList[i].gameObject:SetActive(true) self.rewardContentbg[i].gameObject:SetActive(true) end end) SetTextVerTial(self.titleText,Vector3.New(102.07,18.2,0)) -- 刷新红点显示 self:RefreshRedShow() end function DailyRechargePanel:OnDealBtnClicked() if self.missionInfo.state == 1 then PopupTipPanel.ShowTip(Language[10421]) else if DailyRechargeManager.ReceivedEnabled(self.missionInfo.missionId) or self.missionInfo.state == 2 then NetManager.GetActivityRewardRequest(self.missionInfo.missionId, self.activityId, function(_drop) UIManager.OpenPanel(UIName.RewardItemPopup, _drop, 1) self:RefreshPanel() Game.GlobalEvent:DispatchEvent(GameEvent.Activity.OnActivityOpenOrClose,{type = self.actType}) CheckRedPointStatus(RedPointType.DailyRecharge) CheckRedPointStatus(RedPointType.yunmenghaoli) end) else JumpManager.GoJump(actRewardConfig[self.missionInfo.missionId].Jump[1],function(isJump) if isJump then self:ClosePanel() end end) end end end -- 刷新界面红点显示 function DailyRechargePanel:RefreshRedShow() for i = 1,#self.actInfo.mission do if self.items[i] and self.items[i].redpot then if (self.actInfo.mission[i].state == 0 and DailyRechargeManager.ReceivedEnabled(self.actInfo.mission[i].missionId)) or self.actInfo.mission[i].state == 2 then self.items[i].redpot:SetActive(true) else self.items[i].redpot:SetActive(false) end end end end return DailyRechargePanel