--[[ * @ClassName FirstRechargePanel * @Description 首充 * @Date 2019/6/3 11:45 * @Author MagicianJoker, fengliudianshao@outlook.com * @Copyright Copyright (c) 2019, MagicianJoker --]] local DayRewardItem = require("Modules/FirstRecharge/DayRewardItem") ---@class FirstRechargePanel local FirstRechargePanel = quick_class("FirstRechargePanel", BasePanel) local kMaxTab, kMaxDay = 2, 3 local TextColorDef = { [1] = Color.New(48 / 255, 31 / 255, 33 / 255, 1), [2] = Color.New(246 / 255, 235 / 255, 179 / 255, 1) } local orginLayer local activityRewardConfig = ConfigManager.GetConfig(ConfigName.ActivityRewardConfig) function FirstRechargePanel:InitComponent() orginLayer = 0 self.frame = Util.GetGameObject(self.transform, "frame") self.closeBtn = Util.GetGameObject(self.transform, "closeBtn") self.heroPreviewBtn = Util.GetGameObject(self.transform, "frame/heroPreviewBtn") self.tenProBtn = Util.GetGameObject(self.transform, "frame/tenProBtn") self.stageImage6 = Util.GetGameObject(self.transform, "frame/stageImage/Image") self.stageImage100 = Util.GetGameObject(self.transform, "frame/stageImage/Image (1)") --topPart -- self.itemPos = Util.GetGameObject(self.transform, "frame/itemPos") -- self.itemInfo = SubUIManager.Open(SubUIConfig.ItemView, self.itemPos.transform) -- self.nameIcon = Util.GetGameObject(self.transform, "frame/bg/topPart/nameIcon"):GetComponent("Image") -- self.rewardValue = Util.GetGameObject(self.transform, "frame/bg/topPart/tipsBg/value"):GetComponent("Text") --midPart self.tabs = {} self.selectTabs = {} self.tabTitles = {} self.tabRedPoint = {} for i = 1, kMaxTab do self.tabs[i] = Util.GetGameObject(self.transform, "frame/tabsContent/tabs_" .. i) self.selectTabs[i] = Util.GetGameObject(self.tabs[i], "selected") self.tabTitles[i] = Util.GetGameObject(self.tabs[i], "title"):GetComponent("Text") self.tabRedPoint[i] = Util.GetGameObject(self.tabs[i], "redPoint") end self.selectTabIndex = -1 self.dayRewardList = {} for i = 1, kMaxDay do self.dayRewardList[i] = DayRewardItem.new(self,self.transform:Find("frame/rewardBg/rewardBg/rewardDay" .. i.."/rewardDay" .. i)) end --bottomPart self.reChargeBtn = Util.GetGameObject(self.transform, "frame/rechargeBtn") self.reChargeTips = Util.GetGameObject(self.transform, "frame/tips"):GetComponent("Text") self.effect = Util.GetGameObject(self.transform, "frame/effect") self.qianyao = Util.GetGameObject(self.transform, "qianyao") self.ani = self.transform:GetComponent("Animator") -- effectAdapte(Util.GetGameObject(self.effect, "Partical/ziti mask (1)")) BindLightFlash(Util.GetGameObject(self.effect, "saoguang"), Util.GetGameObject(self.frame, "bg_piaodai/Image (3)")) BindLightFlash(Util.GetGameObject(self.effect, "saoguang (1)"), self.reChargeBtn) end function FirstRechargePanel:BindEvent() Util.AddClick(self.closeBtn, function() self:ClosePanel() end) Util.AddClick(self.reChargeBtn, function() self:OnRechargeBtnClicked() end) for i = 1, kMaxTab do Util.AddClick(self.tabs[i], function() self:OnTabClicked(i) end) end Util.AddClick(self.heroPreviewBtn, function() local fakeId = tonumber(1008) local fdata, fseed = BattleManager.GetFakeBattleData(fakeId) local testFightData = { fightData = fdata, fightSeed = fseed, fightType = 0, maxRound = 20 } UIManager.OpenPanel(UIName.BattlePanel, testFightData, BATTLE_TYPE.Test) end) Util.AddClick(self.tenProBtn, function() local heroId = 0 for _, rewardInfo in ConfigPairs(activityRewardConfig) do if rewardInfo.ActivityId == ActivityTypeDef.FirstRecharge then--ActivityTypeDef.AccumulativeRecharge then heroId = rewardInfo.Reward[1][1] break end end UIManager.OpenPanel(UIName.RoleGetInfoPopup, false, heroId,10) end) end function FirstRechargePanel:OnSortingOrderChange() Util.AddParticleSortLayer(self.effect, self.sortingOrder - orginLayer) Util.AddParticleSortLayer(self.qianyao, self.sortingOrder - orginLayer) orginLayer = self.sortingOrder --特效穿透特殊处理 -- if self.itemInfo then -- self.itemInfo:SetEffectLayer( self.sortingOrder) -- end for i = 1, #self.dayRewardList do self.dayRewardList[i]:OnSortingOrderChange(self.sortingOrder) end end local fun = nil function FirstRechargePanel:OnOpen(context,_fun) context = context and context or {} self.selectTabIndex = context.tabIndex and context.tabIndex or 1 -- self:SetOncePart() fun = _fun self.qianyao:SetActive(false) self.qianyao:SetActive(true) self.frame:SetActive(false) self.effect:SetActive(false) self.ani.enabled = false self.closeBtn:GetComponent("Button").enabled = false self.tabs[1]:SetActive(false) Timer.New(function () self.frame:SetActive(true) self.effect:SetActive(true) self.ani.enabled = true end, 1.5):Start() Timer.New(function () self.tabs[1]:SetActive(true) self.closeBtn:GetComponent("Button").enabled = true end, 2.5):Start() end function FirstRechargePanel:OnShow() self:OnTabChanged(self.selectTabIndex) --self.reChargeTips.text = string.format("已充值 %s 元", FirstRechargeManager.GetAccumRechargeValue()) local activityInfo = ActivityGiftManager.GetActivityTypeInfo(ActivityTypeDef.FirstRecharge) local AccumRecharge = 0 for _, missInfo in pairs(activityInfo.mission) do if missInfo and missInfo.progress then AccumRecharge = missInfo.progress end end self.reChargeTips.text = Language[10664]..string.format(MoneyUtil.GetMoneyUnitName(),AccumRecharge)--string.format(Language[10665], AccumRecharge) for i = 1, kMaxTab do self:SetTabRedPointStatus(i) end end function FirstRechargePanel:OnTabClicked(index) if self.selectTabIndex == index then return end self:OnTabChanged(index) end function FirstRechargePanel:OnTabChanged(index) for i, select in ipairs(self.selectTabs) do select:SetActive(i == index) end for i, title in ipairs(self.tabTitles) do title.color = i == index and TextColorDef[2] or TextColorDef[1] end self.stageImage6.gameObject:SetActive(index == 1) self.stageImage100.gameObject:SetActive(index == 2) self:ShowContent(index) self.selectTabIndex = index end function FirstRechargePanel:ShowContent(index) local tempData = {} for _, rewardInfo in ConfigPairs(activityRewardConfig) do if rewardInfo.ActivityId == ActivityTypeDef.FirstRecharge and rewardInfo.Values[1][1] == IndexValueDef[index] then table.insert(tempData, rewardInfo) end end -- self.rewardValue.text = tempData[1].TotalValues for i, dayRewardItem in ipairs(self.dayRewardList) do dayRewardItem:SetValue(tempData[i],self.sortingOrder) end end -- function FirstRechargePanel:SetOncePart() -- for _, rewardInfo in ConfigPairs(activityRewardConfig) do -- if rewardInfo.ActivityId == ActivityTypeDef.FirstRecharge then -- self.itemInfo:OnOpen(false, rewardInfo.Reward[1], 1,false,false,false,self.sortingOrder) -- break -- end -- end -- end function FirstRechargePanel:OnRechargeBtnClicked() if not ShopManager.IsActive(SHOP_TYPE.SOUL_STONE_SHOP) then PopupTipPanel.ShowTip(Language[10422]) return end self:ClosePanel() JumpManager.GoJump(36008) end function FirstRechargePanel:SetTabRedPointStatus(tabIndex) local redPointStatus = false if tabIndex == 1 then redPointStatus = redPointStatus or FirstRechargeManager.GetSixMoneyTabRedPointStatus() else redPointStatus = redPointStatus or FirstRechargeManager.GetHundredTabRedPointStatus() end self.tabRedPoint[tabIndex]:SetActive(redPointStatus) end --界面关闭时调用(用于子类重写) function FirstRechargePanel:OnClose() if fun then fun() fun = nil end end return FirstRechargePanel