--[[ * @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_zh", [2] = "r_mrcz_zi_2_zh", [3] = "r_mrcz_zi_33_zh", [4] = "r_mrcz_zi_4_zh", } 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.desc.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 if not self.moneyNum then local dailyActInfo = ActivityGiftManager.GetActivityTypeInfo(ActivityTypeDef.DailyRecharge) local actRewardConfig = ConfigManager.GetConfigData(ConfigName.ActivityRewardConfig, dailyActInfo.mission[1].missionId) self.moneyNum = SubUIManager.Open(SubUIConfig.MoneyNumView, Util.GetGameObject(self.transform,"frame/bg/descbg").transform, actRewardConfig.Values[1][1], MoneyNumViewType.Image_Horizontal, "LevelFont", 42, 1, Vector2.New(60, 100), Vector2.New(20, 0), MoneyNumViewImageType.Big_1) end self.moneyNum:SetOffsetPosition(Vector2.New(480, -90)) self.moneyNum:SetOffsetRotation(Vector3.New(0, 0, -10)) self.moneyNum.transform:SetSiblingIndex(2) 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") local parent = Util.GetGameObject(self.transform, "frame/bg/Image") local titleText = Util.GetGameObject(parent, "Text"):GetComponent("Text") titleText.text = Language[12109] SetTextVerTial(titleText,Vector3.New(102.07,18.2,0)) 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:OnDestroy() if self.moneyNum then SubUIManager.Close(self.moneyNum) self.moneyNum = nil end 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.dealText.text = Language[10420] self.moneyNum.gameObject:SetActive(true) else if DailyRechargeManager.ReceivedEnabled() then self.extraIcon.sprite = Util.LoadSprite(rechargeBgDef[3]) self.dealText.text = Language[10018] self.moneyNum.gameObject:SetActive(false) else self.extraIcon.sprite = Util.LoadSprite(rechargeBgDef[4]) -- local remainValue = actRewardConfig.Values[1][1] - DailyRechargeManager.GetRechargeValue() -- remainValue = remainValue < 0 and 0 or remainValue self.dealText.text = Language[10420] self.moneyNum.gameObject:SetActive(true) end end else self.dealText.text = Language[10101] self.extraIcon.sprite = Util.LoadSprite(rechargeBgDef[4]) self.moneyNum.gameObject: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(Language[10421]) 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(Language[10422]) return end JumpManager.GoJump(36008) end self:ClosePanel() end end return DailyRechargePanel