--[[ * @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.closeBtn = Util.GetGameObject(self.transform, "frame/bg/btnClose") --topPart self.itemPos = Util.GetGameObject(self.transform, "frame/bg/topPart/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/bg/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/bg/rewardBg/rewardDay" .. i)) end --bottomPart self.reChargeBtn = Util.GetGameObject(self.transform, "rechargeBtn") self.reChargeTips = Util.GetGameObject(self.transform, "rechargeTipsBg/tips"):GetComponent("Text") self.effect = Util.GetGameObject(self.transform, "effect") effectAdapte(Util.GetGameObject(self.effect, "Partical/ziti mask (1)")) 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 end function FirstRechargePanel:OnSortingOrderChange() Util.AddParticleSortLayer(self.effect, 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 function FirstRechargePanel:OnOpen(context) context = context and context or {} self.selectTabIndex = context.tabIndex and context.tabIndex or 1 self:SetOncePart() end function FirstRechargePanel:OnShow() self:OnTabChanged(self.selectTabIndex) --self.reChargeTips.text = string.format("已充值 %s 元", FirstRechargeManager.GetAccumRechargeValue()) local activityInfo = ActivityGiftManager.GetActivityTypeInfo(ActivityTypeDef.AccumulativeRecharge) local AccumRecharge = 0 for _, missInfo in pairs(activityInfo.mission) do if missInfo and missInfo.progress then AccumRecharge = missInfo.progress end end self.reChargeTips.text = string.format("已充值 %s 元", 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:ShowContent(index) self.selectTabIndex = index end function FirstRechargePanel:ShowContent(index) local tempData = {} for _, rewardInfo in ConfigPairs(activityRewardConfig) do if rewardInfo.ActivityId == ActivityTypeDef.AccumulativeRecharge 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("商店暂未开放") return end UIManager.OpenPanel(UIName.MainShopPanel, SHOP_TYPE.SOUL_STONE_SHOP) 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 return FirstRechargePanel