UpStarPre = {} local itemConfig = ConfigManager.GetConfig(ConfigName.ItemConfig) local parent function UpStarPre:New(gameObject) local b = {} b.gameObject = gameObject b.transform = gameObject.transform setmetatable(b, { __index = UpStarPre }) return b end --初始化组件(用于子类重写) function UpStarPre:InitComponent() self.spLoader = SpriteLoader.New() self.title = Util.GetGameObject(self.gameObject, "title"):GetComponent("Text") self.middleLayout = Util.GetGameObject(self.gameObject, "bg/middleLayout") self.btnBuy = Util.GetGameObject(self.middleLayout, "btnBuy"):GetComponent("Button") self.icon = Util.GetGameObject(self.btnBuy.transform, "icon"):GetComponent("Image") self.price = Util.GetGameObject(self.btnBuy.transform, "price"):GetComponent("Text") self.buyInfo = Util.GetGameObject(self.middleLayout, "buyInfo"):GetComponent("Text") self.redPoint = Util.GetGameObject(self.middleLayout, "scroller2/redPoint") self.grid1 = Util.GetGameObject(self.middleLayout, "grid1") self.grid2 = Util.GetGameObject(self.middleLayout, "scroller2/grid2") self.GetBtn = Util.GetGameObject(self.middleLayout, "scroller2/GetBtn") self.grid3 = Util.GetGameObject(self.middleLayout, "scroller3/grid3") self.grid3 = Util.GetGameObject(self.middleLayout, "scroller3/grid3") self.itemPre = Util.GetGameObject(self.middleLayout, "itemPre") self.itemList = {} end --绑定事件(用于子类重写) function UpStarPre:BindEvent() Util.AddOnceClick(self.btnBuy.gameObject, function() if self.isTemp then PopupTipPanel.ShowTip("请先选择并锁定一个英雄") return end if self.data.state == 0 then PopupTipPanel.ShowTip("英雄达指定星级后解锁") return end --直购商品 PayManager.Pay(self.data.giftId, function(id) self:SetBtn() end) end) Util.AddOnceClick(self.GetBtn, function() if self.isTemp then PopupTipPanel.ShowTip("请先选择并锁定一个英雄") return end NetManager.GetActivityRewardRequest(self.data.missionId,self.actData.activityId,function(msg) UIManager.OpenPanel(UIName.RewardItemPopup,msg,1) self.data.state = 2 self:SetBtn1() end) end) end --添加事件监听(用于子类重写) function UpStarPre:AddListener() end --移除事件监听(用于子类重写) function UpStarPre:RemoveListener() end function UpStarPre:OnOpen() end function UpStarPre:SetData(singleData,_parent,sortingOrder,actData,actConfig) self.data = singleData self.parent = _parent self.actData = actData self.sortingOrder = sortingOrder --设置礼包内容 if not self.itemList then self.itemList = {} end self:SetShows(1,self.data.heroShows, self.grid1) self:SetShows(2,self.data.freeShows, self.grid2) self:SetShows(3,self.data.giftShows, self.grid3) self:SetBtn1() self:SetBtn() end function UpStarPre:SetShows(key,shows,parent) if not self.itemList[key] then self.itemList[key] = {} end for i = 1, math.max(#shows,#self.itemList[key]) do if not shows[i] then self.itemList[key][i].go.gameObject:SetActive(false) else if not self.itemList[key][i] then self.itemList[key][i] = {} self.itemList[key][i].go = newObjToParent(self.itemPre,parent) self.itemList[key][i].lock = Util.GetGameObject(self.itemList[key][i].go, "lock") self.itemList[key][i].Get = Util.GetGameObject(self.itemList[key][i].go, "Get") self.itemList[key][i].Get.gameObject:SetActive(false) if self.data.state == 0 then if key == 1 then self.title.text = string.format("%s星解锁",shows[i][4]) end self.itemList[key][i].lock.gameObject:SetActive(true) else self.title.text = "" self.itemList[key][i].lock.gameObject:SetActive(false) end self.itemList[key][i].item = SubUIManager.Open(SubUIConfig.ItemView,self.itemList[key][i].go.transform) self.itemList[key][i].item.transform:SetAsFirstSibling() end self.itemList[key][i].go.gameObject:SetActive(true) self.itemList[key][i].item:OnOpen(false, {shows[i][1],shows[i][2],shows[i][3],shows[i][4]}, 0.85,false,false,false,self.sortingOrder) -- 定制显示 if self.parent.GetCurChooseHero then self.choose, self.isTemp = self.parent:GetCurChooseHero() -- 临时状态不再显示锁头 if self.data.state == 0 and not self.isTemp then self.itemList[key][i].lock.gameObject:SetActive(true) else self.itemList[key][i].lock.gameObject:SetActive(false) end -- 未选择时角色和角色碎片显示问号 if self.choose == 0 then local con = itemConfig[shows[i][1]] if con and (con.ItemType == ItemType.Hero or con.ItemType == ItemType.HeroDebris) then -- 不显示阵营 self.itemList[key][i].item.proImage.gameObject:SetActive(false) self.itemList[key][i].item.fragmentIcon.gameObject:SetActive(false) -- 显示问号 self.itemList[key][i].item.icon.sprite = self.spLoader:LoadSprite("y_yosr_wenhao") self.itemList[key][i].item.icon:SetNativeSize() -- 屏蔽按钮事件 Util.AddOnceClick(self.itemList[key][i].item.frameBtn, function() end) end end end end end end function UpStarPre:SetBtn1() for i = 1,#self.itemList[2] do if self.data.state == 2 then self.itemList[2][i].Get.gameObject:SetActive(true) else self.itemList[2][i].Get.gameObject:SetActive(false) end end -- 只有在锁定状态才显示可领取 if self.data.state == 1 and not self.isTemp then self.GetBtn.gameObject:SetActive(true) self.redPoint.gameObject:SetActive(true) else self.GetBtn.gameObject:SetActive(false) self.redPoint.gameObject:SetActive(false) end end local State = { [0] = {sprte = "l_libao_anniu"}, [1] = {sprte = "s_slbz_1anniuongse"}, [2] = {sprte = "s_slbz_1anniuhuise"}, } function UpStarPre:SetBtn() self.btnBuy.gameObject:SetActive(true) self.data.giftData = OperatingManager.GetGiftGoodsInfo(self.data.giftConfig.Type,self.data.giftConfig.Id) self.icon.gameObject:SetActive(false) self.btnBuy.enabled = true self.price.text = MoneyUtil.GetMoneyUnitNameWithMoney(self.data.giftConfig.Price) self.buyInfo.text = string.format("限购%s次",self.data.giftConfig.Limit) if self.data.giftData and self.data.giftData.buyTimes > 0 then self.buyInfo.text = "" self.price.text = "已购买" self.btnBuy.enabled = false self.btnBuy:GetComponent("Image").sprite = self.spLoader:LoadSprite(State[2].sprte) else -- 未选择神将时显示未购买 if self.data.state == 0 or self.isTemp then self.btnBuy:GetComponent("Image").sprite = self.spLoader:LoadSprite(State[0].sprte) else self.btnBuy:GetComponent("Image").sprite = self.spLoader:LoadSprite(State[1].sprte) end end ForceRebuildLayout(self.btnBuy.transform) end function UpStarPre:OnClose() for k,v in pairs(self.itemList) do for n,m in ipairs(v) do SubUIManager.Close(m.item) end end Util.ClearChild(self.grid1.transform) Util.ClearChild(self.grid2.transform) Util.ClearChild(self.grid3.transform) self.itemList = {} end return UpStarPre