local PrivilegeCardPanel = Inherit(BasePanel) local this = PrivilegeCardPanel local kMaxReward = 8 local cursortingOrder local curIndex = 1 local selfRechargeID local privilegeCardInfo ={} local img = { "bt_tequan_tianxuan_bg_02_zh", "bt_tequan_weimian_bg_02_zh" } local contentWidth = { [1] = 1031, [2] = 1300, [3] = 1700, [4] = 210, --高 } local buyBtnState = false function PrivilegeCardPanel:InitComponent() cursortingOrder = 0 self.backBtn = Util.GetGameObject(self.transform, "btnBack") --激活领取 self.rewardContent2 = {} self.rewardContentEffect2 = {} self.rewardList2 = {} self.imageTitle = Util.GetGameObject(self.transform, "frame/bg/Image"):GetComponent("Image") for i = 1, kMaxReward do self.rewardContent2[i] = Util.GetGameObject(self.transform, "frame/bg/rewardView1/rewardContent1/itemPos_" .. i) self.rewardContentEffect2[i] = Util.GetGameObject(self.rewardContent2[i], "Kuang") effectAdapte(self.rewardContentEffect2[i]) self.rewardList2[i] = SubUIManager.Open(SubUIConfig.ItemView, self.rewardContent2[i].transform) Util.GetGameObject(self.rewardList2[i].gameObject,"item/num"):GetComponent("Text").color = Color.New(255/255,255/255,255/255,127/255) end self.tipList={} -- for i = 1, 8 do -- self.tipList[i] = Util.GetGameObject(self.transform, "frame/bg/Tips/Text_" .. i):GetComponent("Text") -- self.tipList[i].gameObject:SetActive(false) -- end self.itemPrefab = Util.GetGameObject(self.transform, "frame/bg/Tips/TipsContent/ItemPrefab") self.itemPrefab:SetActive(false) self.tipsContent = Util.GetGameObject(self.transform, "frame/bg/Tips/TipsContent") --每日领取 self.rewardContent = {} self.rewardContentEffect = {} self.rewardList = {} for i = 1, kMaxReward do self.rewardContent[i] = Util.GetGameObject(self.transform, "frame/bg/rewardView2/rewardContent2/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) Util.GetGameObject(self.rewardList[i].gameObject,"item/num"):GetComponent("Text").color = Color.New(255/255,255/255,255/255,127/255) end self.dealBtn = Util.GetGameObject(self.transform, "frame/bg/dealBtn")--购买 self.dealBtnText = Util.GetGameObject(self.transform, "frame/bg/dealBtn/Text"):GetComponent("Text")--购买价格 self.getBtn = Util.GetGameObject(self.transform, "frame/bg/getBtn") --领取 self.receivedBtn = Util.GetGameObject(self.transform, "frame/bg/receivedBtn") --已领取 --self.UI_effect_DailyRechargePanel_particle = Util.GetGameObject(self.transform, "frame/UI_effect_DailyRechargePanel_particle") self.smallAmount = Util.GetGameObject(self.transform, "frame/bg/choose/smallAmount") self.smallAmountText = Util.GetGameObject(self.transform, "frame/bg/choose/smallAmount/Text"):GetComponent("Text") self.smallAmountSelectText = Util.GetGameObject(self.transform, "frame/bg/choose/smallAmount/select/Text"):GetComponent("Text") self.largeAmount = Util.GetGameObject(self.transform, "frame/bg/choose/largeAmount") self.largeAmountText = Util.GetGameObject(self.transform, "frame/bg/choose/largeAmount/Text"):GetComponent("Text") self.largeAmountSelectText = Util.GetGameObject(self.transform, "frame/bg/choose/largeAmount/select/Text"):GetComponent("Text") self.content = Util.GetGameObject(self.transform, "frame/bg/rewardView1") self.content2 = Util.GetGameObject(self.transform, "frame/bg/rewardView2") end function PrivilegeCardPanel:BindEvent() Util.AddClick(self.backBtn, function() self:ClosePanel() end) Util.AddClick(self.dealBtn, function() local actRewardConfig = ConfigManager.GetConfigData(ConfigName.TequanCardConfig, curIndex) local buy = true local nameData ={} for index, value in ipairs(actRewardConfig.BuyRule) do if value == 0 then buy = true break else local data = ConfigManager.GetConfigData(ConfigName.TequanCardConfig, value) if PrivilegeManager.GetPrivilegeOpenStatusById(data.PrivilegeID) == false then local str = "" str= GetLanguageStrById(data.Name) table.insert(nameData,str) buy = false end end end if buy then --判断是否可购买 PayManager.Pay({Id = selfRechargeID}, function () -- FirstRechargeManager.RefreshAccumRechargeValue(data.Id) this:OnShow() end) else local str="" for i = 1, #nameData do str = str..nameData[i] end str = string.format(GetLanguageStrById(50405),str) PopupTipPanel.ShowTip(str) end end) Util.AddClick(self.getBtn, function() NetManager.ReceivePrivilegeCardDailyRewardRequest(curIndex, function(msg) UIManager.OpenPanel(UIName.RewardItemPopup,msg.drop,1,function() privilegeCardInfo = msg.privilegeCardInfo PrivilegeManager.privilegeCardInfo = msg.privilegeCardInfo self:RefreshPanel(curIndex) --self:WarPowerRewardShow() end) end) end) Util.AddClick(self.smallAmount, function () Util.GetGameObject(self.largeAmount, "select"):SetActive(false) Util.GetGameObject(self.smallAmount, "select"):SetActive(true) self:RefreshPanel(1) end) Util.AddClick(self.largeAmount, function () self.imageTitle.sprite=Util.LoadSprite(img[2]) Util.GetGameObject(self.smallAmount, "select"):SetActive(false) Util.GetGameObject(self.largeAmount, "select"):SetActive(true) self:RefreshPanel(2) end) end function PrivilegeCardPanel:OnOpen() local name_1 = GetLanguageStrById(ConfigManager.GetConfigData(ConfigName.TequanCardConfig, 1).Name) local name_2 = GetLanguageStrById(ConfigManager.GetConfigData(ConfigName.TequanCardConfig, 2).Name) self.smallAmountText.text = name_1 self.smallAmountSelectText.text = name_1 self.largeAmountText.text = name_2 self.largeAmountSelectText.text = name_2 end function PrivilegeCardPanel:OnShow() NetManager.GetPrivilegeCardInfoResponse(function (msg) privilegeCardInfo = msg.privilegeCardInfo PrivilegeManager.privilegeCardInfo = msg.privilegeCardInfo -- Util.GetGameObject(self.largeAmount, "select"):SetActive(false) -- Util.GetGameObject(self.smallAmount, "select"):SetActive(true) self:RefreshPanel(curIndex) end) end function PrivilegeCardPanel:OnClose() -- Game.GlobalEvent:RemoveEvent(GameEvent.Activity.OnActivityOpenOrClose, self.RefreshPanel, self) end function PrivilegeCardPanel:SetContentWidth(index) local content = Util.GetGameObject(self.content, "rewardContent1"):GetComponent("RectTransform") local content2 = Util.GetGameObject(self.content2, "rewardContent2"):GetComponent("RectTransform") if index == 1 then content.sizeDelta = Vector2.New(contentWidth[index], contentWidth[4]) content2.sizeDelta = Vector2.New(contentWidth[index], contentWidth[4]) elseif index == 2 then content.sizeDelta = Vector2.New(contentWidth[index], contentWidth[4]) content2.sizeDelta = Vector2.New(contentWidth[index], contentWidth[4]) elseif index == 3 then content.sizeDelta = Vector2.New(contentWidth[index], contentWidth[4]) content2.sizeDelta = Vector2.New(contentWidth[index], contentWidth[4]) end end --添加事件监听(用于子类重写) function PrivilegeCardPanel:AddListener() Game.GlobalEvent:AddEvent(GameEvent.PrivilegeCardPanel.Refresh, this.NewDay) end --移除事件监听(用于子类重写) function PrivilegeCardPanel:RemoveListener() Game.GlobalEvent:RemoveEvent(GameEvent.PrivilegeCardPanel.Refresh, this.NewDay) end function PrivilegeCardPanel.NewDay() PrivilegeCardPanel:OnShow() end function PrivilegeCardPanel:RefreshPanel(index) if #self.tipList>0 then for i = 1, #self.tipList do self.tipList[i]:SetActive(false) end end curIndex = index self.imageTitle.sprite=Util.LoadSprite(img[index]) -- CheckRedPointStatus(RedPointType.DailyRecharge) CheckRedPointStatus(RedPointType.PrivilegeCardPage) Util.GetGameObject(self.smallAmount, "redpoint"):SetActive(PrivilegeManager.GetPrivilegeCardRedState(1)) Util.GetGameObject(self.largeAmount, "redpoint"):SetActive(PrivilegeManager.GetPrivilegeCardRedState(2)) PrivilegeCardPanel:SetContentWidth(curIndex) self.content:SetActive(true) self.content2:SetActive(true) --每日奖励表 local actRewardConfig = ConfigManager.GetConfigData(ConfigName.TequanCardConfig, curIndex) selfRechargeID = actRewardConfig.RechargeID for index, value in ipairs(privilegeCardInfo) do if value.cardId == selfRechargeID then buyBtnState = value.takeDailyReward end end table.walk(self.rewardContent, function(rewardPosItem) rewardPosItem:SetActive(false) end) for i = 1, #self.rewardContent do if #actRewardConfig.DailyReward < i then self.rewardContent[i]:SetActive(false) end end table.walk(self.rewardContent2, function(rewardPosItem2) rewardPosItem2:SetActive(false) end) local configData = ConfigManager.GetConfigData(ConfigName.TequanCardConfig, curIndex) local RewardConfig = ConfigManager.GetConfigData(ConfigName.RechargeCommodityConfig, configData.RechargeID) local buyPrivilegeState = PrivilegeManager.GetPrivilegeOpenStatusById(actRewardConfig.PrivilegeID) for i, rewardInfo in ipairs(actRewardConfig.DailyReward) do self.rewardList[i]:OnOpen(false, rewardInfo, 0.8) self.rewardContent[i]:SetActive(true) if buyPrivilegeState then local Data ={} for index, value in ipairs(privilegeCardInfo) do if value.cardId == curIndex then Data = value end end if Data.takeDailyReward then self.rewardList[i]:SetDuiImageShow(true) else self.rewardList[i]:SetDuiImageShow(false) end else self.rewardList[i]:SetDuiImageShow(false) end end for i = 1, #self.rewardContent2 do if #RewardConfig.RewardShow < i then self.rewardContent2[i]:SetActive(false) end end for i, rewardInfo in ipairs(RewardConfig.RewardShow) do if i<=kMaxReward then self.rewardList2[i]:OnOpen(false, rewardInfo, 0.8) if buyPrivilegeState then self.rewardList2[i]:SetDuiImageShow(true) else self.rewardList2[i]:SetDuiImageShow(false) end self.rewardContent2[i]:SetActive(true) end end PrivilegeCardPanel:SetDesc(curIndex) PrivilegeCardPanel:SetBtnState(curIndex) end function PrivilegeCardPanel:SetDesc(cIndex) local desData = PrivilegeTurnManager.GetPrivilegeCardDes(cIndex) for i = 1, #desData do if self.tipList[i] == nil then local go = newObjToParent(self.itemPrefab,self.tipsContent.transform) --go.transform:SetParent(self.tipsContent.transform) go:GetComponent("Text").text = desData[i].des go:SetActive(true) self.tipList[i] = go else self.tipList[i]:GetComponent("Text").text = desData[i].des self.tipList[i]:SetActive(true) end end end function PrivilegeCardPanel:SetBtnState(cindex) self.dealBtn:SetActive(false) self.getBtn:SetActive(false) self.receivedBtn:SetActive(false) local actRewardConfig = ConfigManager.GetConfigData(ConfigName.TequanCardConfig, cindex) local itemPrice = ConfigManager.GetConfigData(ConfigName.RechargeCommodityConfig, actRewardConfig.RechargeID).Price local buyPrivilegeState = PrivilegeManager.GetPrivilegeOpenStatusById(actRewardConfig.PrivilegeID) if buyPrivilegeState then local Data ={} for index, value in ipairs(privilegeCardInfo) do if value.cardId == cindex then Data = value end end if Data.takeDailyReward then self.receivedBtn:SetActive(true) else self.getBtn:SetActive(true) end else self.dealBtn:SetActive(true) self.dealBtnText.text = GetLanguageStrById(50202)..MoneyUtil.GetMoney(itemPrice) end end return PrivilegeCardPanel