--[[ * @ClassName DailyRechargePanel * @Description 每日首充 * @Date 2019/8/1 19:28 * @Author MagicianJoker, fengliudianshao@outlook.com * @Copyright Copyright (c) 2019, MagicianJoker --]] ---@class DailyRechargePanel local DailyRechargePanel = quick_class("DailyRechargePanel", BasePanel) local kMaxReward = 4 local rechargeBgDef = { [1] = "r_mrcz_zi_1", [2] = "r_mrcz_zi_2", [3] = "r_mrcz_zi_33", [4] = "r_mrcz_zi_4", } local cursortingOrder local isFirstOpen = false function DailyRechargePanel:InitComponent() cursortingOrder = 0 self.backBtn = Util.GetGameObject(self.transform, "frame") self.extraIcon = Util.GetGameObject(self.transform,"frame/bg/descbg/extraIcon"):GetComponent("Image") self.desc = Util.GetGameObject(self.transform, "frame/bg/descbg/value"):GetComponent("Text") self.dollar = Util.GetGameObject(self.transform,"frame/bg/descbg/dollar") self.dollar:SetActive(false) self.rewardContent = {} self.rewardContentEffect = {} self.rewardList = {} for i = 1, kMaxReward do self.rewardContent[i] = Util.GetGameObject(self.transform, "frame/bg/rewardContent/itemPos_" .. i) self.rewardContentEffect[i] = Util.GetGameObject(self.rewardContent[i], "Kuang") effectAdapte(self.rewardContentEffect[i]) self.rewardList[i] = SubUIManager.Open(SubUIConfig.ItemView, self.rewardContent[i].transform) end self.dealBtn = Util.GetGameObject(self.transform, "frame/bg/dealBtn") self.dealText = Util.GetGameObject(self.dealBtn, "Text"):GetComponent("Text") self.UI_effect_DailyRechargePanel_particle = Util.GetGameObject(self.transform, "frame/UI_effect_DailyRechargePanel_particle") end function DailyRechargePanel:BindEvent() Util.AddClick(self.backBtn, function() if not isFirstOpen then self:ClosePanel() end end) Util.AddClick(self.dealBtn, function() if not isFirstOpen then self:OnDealBtnClicked() end end) end function DailyRechargePanel:OnOpen() isFirstOpen = true self:RefreshPanel() Timer.New(function () isFirstOpen = false end, 1.5):Start() end function DailyRechargePanel:OnShow() Game.GlobalEvent:AddEvent(GameEvent.Activity.OnActivityOpenOrClose, self.RefreshPanel, self) 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:OnClose() Game.GlobalEvent:RemoveEvent(GameEvent.Activity.OnActivityOpenOrClose, self.RefreshPanel, self) end function DailyRechargePanel:RefreshPanel() local dailyActInfo = ActivityGiftManager.GetActivityTypeInfo(ActivityTypeDef.DailyRecharge) self.activityId = dailyActInfo.activityId self.missionInfo = dailyActInfo.mission[1] local actRewardConfig = ConfigManager.GetConfigData(ConfigName.ActivityRewardConfig, self.missionInfo.missionId) if self.missionInfo.state == 0 then if DailyRechargeManager.GetRechargeValue()==0 then self.extraIcon.sprite = Util.LoadSprite(rechargeBgDef[4]) self.dollar:SetActive(true) self.desc.text = actRewardConfig.Values[1][1] self.dealText.text = "立即充值" else if DailyRechargeManager.ReceivedEnabled() then self.extraIcon.sprite = Util.LoadSprite(rechargeBgDef[3]) self.dollar:SetActive(false) self.dealText.text = "领取" self.desc.text = "" else self.extraIcon.sprite = Util.LoadSprite(rechargeBgDef[4]) self.dollar:SetActive(true) -- local remainValue = actRewardConfig.Values[1][1] - DailyRechargeManager.GetRechargeValue() -- remainValue = remainValue < 0 and 0 or remainValue self.desc.text = actRewardConfig.Values[1][1]--remainValue self.dealText.text = "立即充值" end end else self.dealText.text = "已领取" self.extraIcon.sprite = Util.LoadSprite(rechargeBgDef[4]) self.dollar:SetActive(true) end self.extraIcon:SetNativeSize() table.walk(self.rewardContent, function(rewardPosItem) rewardPosItem:SetActive(false) end) for i, rewardInfo in ipairs(actRewardConfig.Reward) do self.rewardList[i]:OnOpen(false, rewardInfo, 1.1) self.rewardContent[i]:SetActive(true) end end function DailyRechargePanel:OnDealBtnClicked() if self.missionInfo.state == 1 then PopupTipPanel.ShowTip("您已领取") else if DailyRechargeManager.ReceivedEnabled() then NetManager.GetActivityRewardRequest(self.missionInfo.missionId, self.activityId, function(_drop) UIManager.OpenPanel(UIName.RewardItemPopup, _drop, 1) DailyRechargeManager.SetRechargeState(1) Game.GlobalEvent:DispatchEvent(GameEvent.Activity.OnActivityOpenOrClose, { type = ActivityTypeDef.DailyRecharge, status = 0 }) end) else if not ShopManager.IsActive(SHOP_TYPE.SOUL_STONE_SHOP) then PopupTipPanel.ShowTip("商店暂未开放") return end UIManager.OpenPanel(UIName.MainRechargePanel, 1) end self:ClosePanel() end end return DailyRechargePanel