ItemUpstarPre = {} local itemConfig = ConfigManager.GetConfig(ConfigName.ItemConfig) local ComposeBook = ConfigManager.GetConfig(ConfigName.ComposeBook) function ItemUpstarPre:New(gameObject) local b = {} b.gameObject = gameObject b.transform = gameObject.transform setmetatable(b, { __index = ItemUpstarPre }) return b end --初始化组件(用于子类重写) function ItemUpstarPre:InitComponent() self.upLayout = Util.GetGameObject(self.gameObject,"Content/upLayout") self.midLayout = Util.GetGameObject(self.gameObject,"Content/middleLayout") self.btnExchange = Util.GetGameObject(self.midLayout,"btnBuy") self.btnText = Util.GetGameObject(self.btnExchange,"Text"):GetComponent("Text") self.btnRed = Util.GetGameObject(self.btnExchange,"redPoint") self.info = Util.GetGameObject(self.midLayout,"info"):GetComponent("Text") self.gridList ={} self.gridList[1] = Util.GetGameObject(self.midLayout,"itemNeed/item") self.gridList[2] = Util.GetGameObject(self.midLayout,"itemCost/item") self.gridList[3] = Util.GetGameObject(self.midLayout,"itemGet/item") self.btnMaskNeed = Util.GetGameObject(self.midLayout,"itemNeed/mask") self.btnMaskGet = Util.GetGameObject(self.midLayout,"itemGet/mask") self.btnMaskNeedAdd = Util.GetGameObject(self.midLayout,"itemNeed/mask/Image") self.effect = Util.GetGameObject(self.gameObject,"UI_Effect_MianBan_LiBao_button_01") end --绑定事件(用于子类重写) function ItemUpstarPre:BindEvent() Util.AddOnceClick(self.btnMaskNeed,function () -- UIManager.OpenPanel(UIName.GeneralPopup,GENERAL_POPUP_TYPE.YunYouMan,self.data,function () -- self:Refresh() -- end) end) Util.AddOnceClick(self.btnExchange,function () if self.data.otherData.selectId == 0 then PopupTipPanel.ShowTip(Language[12302]) return end local cost = ConfigManager.GetConfigData(ConfigName.ComposeBook,self.data.otherData.selectId).NeedCost NetManager.EquipUpLevelRequest(self.actData.activityId,self.data.otherData.selectId,cost[1][1],cost[1][2],function (msg) UIManager.OpenPanel(UIName.RewardItemPopup, msg.drop, 1,function() self.parent:RefreshData(true,true,false) end) end) end) end --添加事件监听(用于子类重写) function ItemUpstarPre:AddListener() end --移除事件监听(用于子类重写) function ItemUpstarPre:RemoveListener() end function ItemUpstarPre:OnOpen() end function ItemUpstarPre:SetData(_data,_parent,_sortingOrder,_actData,_actConfig) self.data = _data self.parent = _parent self.sortingOrder = _sortingOrder self.actData = _actData self.actConfig = _actConfig self:Refresh() end function ItemUpstarPre:Refresh()--ComposeBook[data.otherData.needItems[i]].NeedItems[1][1] -- LogPink("self.data.missionId.:"..tostring(self.data.missionId).." #self.data.otherData.needItems:"..tostring(#self.data.otherData.needItems)) self.data.otherData.selectId=self.data.otherData.needItems[1] local needItemId = self.data.otherData.selectId == 0 and self.data.otherData.needItems[1] or self.data.otherData.selectId local configData = ConfigManager.GetConfigData(ConfigName.ComposeBook,needItemId) local rewardList = {configData.NeedItems[1],configData.NeedCost[1],configData.GoalItems[1]} -- LogGreen(tostring(configData.NeedItems[1][1]).." "..tostring(configData.NeedCost[1][1]).." "..tostring(configData.GoalItems[1][1]).." "..tostring(self.data.otherData.selectId)) --设置内容 if not self.itemList then self.itemList = {} end for i = 1, #rewardList do if not self.itemList[i] then self.itemList[i] = SubUIManager.Open(SubUIConfig.ItemView,self.gridList[i].transform) end -- LogRed("id="..self.data.missionId..", sort="..self.sortingOrder) self.itemList[i]:OnOpen(false, rewardList[i], 1,false,false,false,self.sortingOrder) end self:SetMask() self:SetButton() Util.SetParticleSortLayer(self.effect, self.sortingOrder or 0) self.effect:SetActive(CommonActPageManager.CheckSingleRed(self.data)) end function ItemUpstarPre:SetMask() if self.data.otherData.selectId == 0 then self.btnMaskNeedAdd:SetActive(true) self.btnMaskGet:SetActive(not self.data.otherData.IsShowItem) Util.GetGameObject(self.itemList[1].gameObject,"effects"):SetActive(false) Util.GetGameObject(self.itemList[1].gameObject,"item/icon"):SetActive(false) Util.GetGameObject(self.itemList[3].gameObject,"effects"):SetActive(false) Util.GetGameObject(self.itemList[3].gameObject,"item/icon"):SetActive(self.data.otherData.IsShowItem) else self.btnMaskNeedAdd:SetActive(false) self.btnMaskNeed:SetActive(false) self.btnMaskGet:SetActive(false) Util.GetGameObject(self.itemList[1].gameObject,"effects"):SetActive(true) Util.GetGameObject(self.itemList[1].gameObject,"item/icon"):SetActive(true) Util.GetGameObject(self.itemList[3].gameObject,"effects"):SetActive(true) Util.GetGameObject(self.itemList[3].gameObject,"item/icon"):SetActive(true) end end function ItemUpstarPre:SetButton() self.info.text = string.format(Language[12303],self.data.progress) local bool = self.data.progress == 0 self.btnText.text = bool and Language[12304] or Language[12305] Util.SetGray(self.btnExchange,bool) self.btnExchange:GetComponent("Button").interactable = not bool end function ItemUpstarPre:OnClose() self.data.otherData.selectId = 0 self.gridList = {} for k,v in pairs(self.itemList) do SubUIManager.Close(v) end end return ItemUpstarPre