require("Base/BasePanel") HelpFightPanel = Inherit(BasePanel) local assConfig = ConfigManager.GetConfig(ConfigName.AssistanceConfig) --初始化组件(用于子类重写) function HelpFightPanel:InitComponent() self.spLoader = SpriteLoader.New() self.UpView = SubUIManager.Open(SubUIConfig.UpView, self.gameObject.transform, { showType = UpViewOpenType.ShowLeft }) self.btnBack = Util.GetGameObject(self.gameObject, "Back/BackBtn") self.AddProTxt = Util.GetGameObject(self.gameObject, "AddProTxt"):GetComponent("Text") self.helpBtn = Util.GetGameObject(self.gameObject, "HelpBtn") self.scrollRect = Util.GetGameObject(self.gameObject, "scroll") self.prefab = Util.GetGameObject(self.gameObject, "item") self.tipInfo = Util.GetGameObject(self.gameObject, "tipInfo"):GetComponent("Text") self.ScrollBar = Util.GetGameObject(self.gameObject, "Scrollbar"):GetComponent("Scrollbar") local v2 = self.scrollRect:GetComponent("RectTransform").rect self.ScrollView = SubUIManager.Open(SubUIConfig.ScrollCycleView, self.scrollRect.transform, self.prefab, self.ScrollBar, Vector2.New(v2.width, v2.height), 1, 4, Vector2.New(70, 20)) self.ScrollView.moveTween.MomentumAmount = 1 self.ScrollView.moveTween.Strength = 1 end --绑定事件(用于子类重写) function HelpFightPanel:BindEvent() Util.AddClick(self.btnBack, function() self:ClosePanel() end) Util.AddClick(self.helpBtn, function() UIManager.OpenPanel(UIName.HelpPopup, 146, 0, 0) end) end --添加事件监听(用于子类重写) function HelpFightPanel:AddListener() end --移除事件监听(用于子类重写) function HelpFightPanel:RemoveListener() end --界面打开时调用(用于子类重写) function HelpFightPanel:OnOpen() end function HelpFightPanel:OnSortingOrderChange() end --界面打开或者重新打开后,界面刷新时调用(用于子类重写) function HelpFightPanel:OnShow() self.UpView:OnOpen({ showType = UpViewOpenType.ShowLeft, panelType = PanelType.HongMengTower }) local list = {} local heroList = HelpFightManager.HelpFightList for key, v in ConfigPairs(assConfig) do --LogError("id=="..v.Id) local data = {} data.config = v if heroList[key].heroId ~= "" and heroList[key].heroId ~= nil then data.hero = HeroManager.GetSingleHeroData(heroList[key].heroId) end data.state = heroList[key].state list[key] = data end LogError("list len===============" .. #list) self.ScrollView:SetData(list, function(index, go) self:SingleItemDataShow(go, list[index], index) end) local addProList, addNum = HelpFightManager.GetAllAddPro() if #addProList == 0 then local aaa = { 1, 2, 3, 4 } for i = 1, #aaa do addProList[aaa[i]] = 0 end end local str = "" for k, v in pairs(addProList) do str = str .. GetLanguageStrById(ConfigManager.GetConfigData(ConfigName.PropertyConfig, k).Info) .. " +" .. v .. " " .. string.format(Language[11565], addNum / 100) end self.AddProTxt.text = str --self.tipInfo.text="" end function HelpFightPanel:SingleItemDataShow(_go, _data, _index) LogError("_data.id================================" .. _data.config.Id) local frame = Util.GetGameObject(_go, "Box/Empty/frame"):GetComponent("Image") local infoTxt = Util.GetGameObject(_go, "infoTxt"):GetComponent("Text") local lockObj = Util.GetGameObject(_go, "Box/Empty/lock") local tipObj = Util.GetGameObject(_go, "Box/Empty/tipInfo") local heroObj = Util.GetGameObject(_go, "GameObject") local frame1 = Util.GetGameObject(heroObj, "frame"):GetComponent("Image") local lvGo = Util.GetGameObject(heroObj, "lv") local icon = Util.GetGameObject(heroObj, "icon"):GetComponent("Image") local proIcon = Util.GetGameObject(heroObj, "proIcon") local redPoint = Util.GetGameObject(_go, "redPoint") --local name = Util.GetGameObject(heroObj, "name"):GetComponent("Text") local starGrid = Util.GetGameObject(heroObj, "star") local tipTxt = Util.GetGameObject(_go, "Box/Empty/tipInfo/Text"):GetComponent("Text") local proTxt = Util.GetGameObject(_go, "proList/pro1"):GetComponent("Text") frame.sprite = self.spLoader:LoadSprite(GetBgByHeroNatural(_data.config.Quality)) local title = GetHeroNaturalStrByNatural(_data.config.Quality) .. " " .. HeroElementDef[_data.config.ProfessionLimit] redPoint:SetActive(HelpFightManager.CheckRedPointByPosition(_index)) infoTxt.text = title lockObj:SetActive(_data.state == 0) tipObj:SetActive(_data.state == 0) local curTime = GetTimeStamp() local nowTime = math.floor((PlayerManager.userCreateTime + _data.config.Experience * 86400 - curTime) / 86400 + 1) tipTxt.text = string.format(Language[11331], nowTime) local proList = {} if _data.hero then heroObj:SetActive(true) frame1.sprite = self.spLoader:LoadSprite(GetHeroQuantityImageByquality(_data.hero.heroConfig.Natural)) lvGo:SetActive(true) Util.GetGameObject(lvGo.transform, "Text"):GetComponent("Text").text = _data.hero.lv icon.sprite = self.spLoader:LoadSprite(_data.hero.icon) proIcon:GetComponent("Image").sprite = self.spLoader:LoadSprite(GetProStrImageByProNum(_data.hero.changeProId)) --name.text = SubString2(GetLanguageStrById(_data.hero.heroConfig.ReadingName),8) local star, starType = _data.hero.GetStar(1) SetHeroStars(self.spLoader, starGrid, star, starType, nil, nil, Vector2.New(0, 1)) Util.SetParticleSortLayer(starGrid, self.sortingOrder + 1) local config = ConfigManager.TryGetConfigDataByDoubleKey(ConfigName.AssistanceProperty, "Quality", _data.hero.heroConfig.Natural, "Star", _data.hero.star) if config then proList = config.Property end Util.AddClick(icon.gameObject, function() local data = {} data.title = title data.hero = _data.hero data.limitQua = _data.config.Quality data.limitPro = _data.config.ProfessionLimit data.pos = _index UIManager.OpenPanel(UIName.HelpFightListPanel, data, self) end) else proList = { { 1, 0 }, { 2, 0 }, { 3, 0 }, { 4, 0 } } heroObj:SetActive(false) end --显示属性 local str = "" for i = 1, #proList do local k = proList[i][1] local v = proList[i][2] str = str .. GetLanguageStrById(ConfigManager.GetConfigData(ConfigName.PropertyConfig, i).Info) .. " +" .. v .. "\n" end proTxt.text = str Util.AddClick(frame.gameObject, function() local data = {} data.title = title data.hero = nil data.limitQua = _data.config.Quality data.limitPro = _data.config.ProfessionLimit data.pos = _index UIManager.OpenPanel(UIName.HelpFightListPanel, data, self) end) end --界面关闭时调用(用于子类重写) function HelpFightPanel:OnClose() end --界面销毁时调用(用于子类重写) function HelpFightPanel:OnDestroy() self.spLoader:Destroy() SubUIManager.Close(self.UpView) end return HelpFightPanel