FetterItem = {} local itemConfig = ConfigManager.GetConfig(ConfigName.ItemConfig) local parent function FetterItem:New(gameObject) local b = {} b.gameObject = gameObject b.transform = gameObject.transform setmetatable(b, { __index = FetterItem }) return b end --初始化组件(用于子类重写) function FetterItem:InitComponent() self.spLoader = SpriteLoader.New() self.name = Util.GetGameObject(self.gameObject,"bg/nameDi/nameText"):GetComponent("Text") self.mask = Util.GetGameObject(self.gameObject,"bg/mask") self.grid = Util.GetGameObject(self.gameObject,"scroll") self.tipText = Util.GetGameObject(self.gameObject,"tip/tipText"):GetComponent("Text") self.activeBtn = Util.GetGameObject(self.gameObject,"activeBtn") self.activeBtnRed = Util.GetGameObject(self.gameObject,"redpot") self.reward = Util.GetGameObject(self.gameObject,"reward") self.rewardIcon = Util.GetGameObject(self.reward,"icon"):GetComponent("Image") self.rewardNum = Util.GetGameObject(self.reward,"num"):GetComponent("Text") self.active = Util.GetGameObject(self.gameObject,"active") self.itemList = {} self.itemData = {} end --绑定事件(用于子类重写) function FetterItem:BindEvent() Util.AddOnceClick(self.activeBtn, function() local oldWarPower = FormationManager.GetFormationPower(FormationTypeDef.FORMATION_NORMAL) NetManager.PokemonBookEnableRequest(self.itemData.id,function(msg) if msg.drop and msg.drop.itemlist and #msg.drop.itemlist > 0 then local item = msg.drop.itemlist[1] PopupTipPanel.ShowTip(string.format(Language[12278],item.itemNum,GetLanguageStrById(ConfigManager.GetConfigData(ConfigName.ItemConfig,item.itemId).Name))) end TianShuMiJuanManger.UpdateFetterId({self.itemData.id}) local newWarPower = FormationManager.GetFormationPower(FormationTypeDef.FORMATION_NORMAL) UIManager.OpenPanel(UIName.WarPowerChangeNotifyPanelV2,{oldValue = oldWarPower,newValue = newWarPower}) parent:RefreshData() end) end) end --添加事件监听(用于子类重写) function FetterItem:AddListener() end --移除事件监听(用于子类重写) function FetterItem:RemoveListener() end function FetterItem:OnOpen() end function FetterItem:SetData(data,_parent,_index) parent = _parent self.itemData = data self.name.text = self.itemData.name if self.itemData.enabled < 1 then self.tipText.text = string.format("%s",self.itemData.activeParaTip) elseif self.itemData.enabled then self.tipText.text = string.format("%s",self.itemData.activeParaTip) end -- self.tipText.text = self.itemData.activeParaTip if (_index~=3 and _index~=5) and self.itemData.reward and #self.itemData.reward > 0 then if self.itemData.reward[1][1]==0 then self.reward.gameObject:SetActive(false) else self.reward.gameObject:SetActive(true) self.rewardIcon = self.spLoader:LoadSprite(GetResourcePath(itemConfig[self.itemData.reward[1][1]].ResourceID)) self.rewardNum.text = self.itemData.reward[1][2] end else self.reward.gameObject:SetActive(false) end if _index==3 then self.reward.gameObject:SetActive(false) end self:SetIcon(self.itemData.enabled) if not self.itemList then self.itemList = {} end for i = 1 ,#self.itemList do self.itemList[i].gameObject:SetActive(false) end for i = 1, #self.itemData.teamers do if not self.itemList[i] then self.itemList[i] = SubUIManager.Open(SubUIConfig.ItemView,self.grid.transform) end Util.SetGray(self.itemList[i].gameObject,false) self.itemList[i].gameObject:SetActive(true) self.itemList[i]:OnOpen(false,{self.itemData.teamers[i][1],self.itemData.teamers[i][2]},1,true,false,false,self.sortingOrder) if self.itemData.teamers[i][2] > 1 then self.itemList[i].num.gameObject:SetActive(true) else self.itemList[i].num.gameObject:SetActive(false) end self.itemList[i].name:GetComponent("Text").text = string.gsub(self.itemList[i].name:GetComponent("Text").text,"霸气","") self.itemList[i].name:GetComponent("Text").text = string.gsub(self.itemList[i].name:GetComponent("Text").text,"魂...","") if TianShuMiJuanManger.IsHaveItem(self.itemData.fetterType,self.itemData.teamers[i][1],self.itemData.teamers[i][2]) then Util.SetGray(self.itemList[i].gameObject,false) else Util.SetGray(self.itemList[i].gameObject,false) end end end function FetterItem:SetIcon(status) if status == 1 then self.activeBtn.gameObject:SetActive(false) self.active.gameObject:SetActive(true) self.mask.gameObject:SetActive(false) else self.mask.gameObject:SetActive(false) self.activeBtn.gameObject:SetActive(true) self.active.gameObject:SetActive(false) self.activeBtnRed.gameObject:SetActive(false) Util.SetGray(self.activeBtn,false) if status == 0 then Util.SetGray(self.activeBtn,false) self.activeBtnRed.gameObject:SetActive(true) self.activeBtn:GetComponent("Button").enabled = true self.mask.gameObject:SetActive(true) else Util.SetGray(self.activeBtn,false) self.activeBtnRed.gameObject:SetActive(false) self.activeBtn:GetComponent("Button").enabled = false self.mask.gameObject:SetActive(false) end end end function FetterItem:OnClose() for i = 1, #self.itemList do Util.SetGray(self.itemList[i].gameObject,false) SubUIManager.Close(self.itemList[i]) end self.itemList = {} self.spLoader:Destroy() end return FetterItem