----- 通用弹窗 ----- require("Base/BasePanel") TalismanInfoPopup = Inherit(BasePanel) local this=TalismanInfoPopup local itemConfig=ConfigManager.GetConfig(ConfigName.ItemConfig) local passiveSkillConfig=ConfigManager.GetConfig(ConfigName.PassiveSkillConfig) local propertyConfig=ConfigManager.GetConfig(ConfigName.PropertyConfig) local artResourcesConfig=ConfigManager.GetConfig(ConfigName.ArtResourcesConfig) local curHeroData--当前英雄数据 local curHeroConfig local proList = {}--属性容器 local Type=0 local TypeLv=0 function TalismanInfoPopup:InitComponent() this.spLoader = SpriteLoader.New() this.backBtn=Util.GetGameObject(this.gameObject,"Panel/BackBtn") this.backBtn2=Util.GetGameObject(this.gameObject,"Mask") this.title=Util.GetGameObject(this.gameObject,"Panel/Title"):GetComponent("Text") --滚动条 this.content=Util.GetGameObject(this.gameObject,"Panel/ScrollView/Viewport/Content"):GetComponent("RectTransform") this.core=Util.GetGameObject(this.gameObject,"Panel/ScrollView/Viewport/Content/Core") this.coreText=Util.GetGameObject(this.core,"Info"):GetComponent("Text") this.talismanIcon = Util.GetGameObject(this.core, "TalismanRoot/Icon"):GetComponent("Image") this.power=Util.GetGameObject(this.core,"TalismanRoot/Power/Value"):GetComponent("Text") this.basics=Util.GetGameObject(this.gameObject,"Panel/ScrollView/Viewport/Content/Basics") --属性预设 this.proPre=Util.GetGameObject(this.basics,"Root/ProPre") --属性列表父物体 this.proRoot=Util.GetGameObject(this.basics,"Root") this.dower=Util.GetGameObject(this.gameObject,"Panel/ScrollView/Viewport/Content/Dower") this.dowerText=Util.GetGameObject(this.dower,"Mask/Text"):GetComponent("Text") end function TalismanInfoPopup:BindEvent() --返回按钮 Util.AddClick(this.backBtn,function() self:ClosePanel() end) Util.AddClick(this.backBtn2,function() self:ClosePanel() end) end function TalismanInfoPopup:AddListener() end function TalismanInfoPopup:RemoveListener() end function TalismanInfoPopup:OnSortingOrderChange() this.sortingOrder = self.sortingOrder end function TalismanInfoPopup:OnOpen(...) local args={...} curHeroData=args[1] if args[2] then Type=1 curHeroConfig=args[1] TypeLv = args[3] end end function TalismanInfoPopup:OnShow() this.Show() end function TalismanInfoPopup:OnClose() end function TalismanInfoPopup:OnDestroy() this.spLoader:Destroy() proList={} end --显示 function this.Show() this.content:DOAnchorPosY(0, 0) local data={} local curLv--获取当前法宝等级 if Type==1 then data = ConfigManager.GetConfigData(ConfigName.HeroConfig,curHeroConfig.Id).EquipTalismana--当前法宝数据 data[1]星级 data[2]法宝ID curLv=TypeLv else data = ConfigManager.GetConfigData(ConfigName.HeroConfig,curHeroData.id).EquipTalismana--当前法宝数据 data[1]星级 data[2]法宝ID curLv=HeroManager.GetTalismanLv(curHeroData.dynamicId) end --当前法宝数据 local curTalismanConFig= ConfigManager.GetConfigDataByDoubleKey(ConfigName.EquipTalismana,"TalismanaId",data[2],"Level",curLv) --标题 this.title.text= string.format( "",GetLanguageStrById(itemConfig[data[2]].Name),curLv) this.talismanIcon.sprite = this.spLoader:LoadSprite(GetResourcePath(itemConfig[data[2]].ResourceID)) this.power.text = TalismanManager.CalculateWarForceBase(curTalismanConFig,0)--法宝战力 --显示核心特性(30级解锁) local skillLv= ConfigManager.GetConfigDataByDoubleKey(ConfigName.EquipTalismana,"TalismanaId",data[2],"Level",30).OpenSkillRules[1] if skillLv then if curLv<30 then this.coreText.text=string.format( Language[11532],GetLanguageStrById(passiveSkillConfig[skillLv].Desc),30) else this.coreText.text=string.format( "%s【%s】",GetLanguageStrById(passiveSkillConfig[skillLv].Desc),Language[11533]) end end --显示核心特性(50级解锁) local skillLv_50= ConfigManager.GetConfigDataByDoubleKey(ConfigName.EquipTalismana,"TalismanaId",data[2],"Level",50).OpenSkillRules[1] if skillLv_50 then if curLv<50 then this.coreText.text=this.coreText.text.."\n"..string.format( Language[11532],GetLanguageStrById(passiveSkillConfig[skillLv_50].Desc),50) else this.coreText.text=this.coreText.text.."\n"..string.format( "%s【%s】",GetLanguageStrById(passiveSkillConfig[skillLv_50].Desc),Language[11533]) end end --显示基础属性 for i=1,#curTalismanConFig.Property do if not proList[i] then proList[i]= newObjToParent(this.proPre,this.proRoot) proList[i].name="ProPre"..i end local proName=proList[i]:GetComponent("Text") local proImage=Util.GetGameObject(proList[i],"Image"):GetComponent("Image") proImage.gameObject:SetActive(false) local skillId=curTalismanConFig.Property[i][1] local curValue=curTalismanConFig.Property[i][2] --LogError("skillid===================="..skillId) proName.text= " "..GetLanguageStrById(propertyConfig[skillId].Info).."+"..curValue.."" --proImage.sprite=this.spLoader:LoadSprite(artResourcesConfig[propertyConfig[skillId].PropertyIcon].Name) --Util.GetGameObject(proImage.gameObject,"Image"):GetComponent("Image"):SetNativeSize() end --显示法宝天赋 --筛选出符合要求的数据 local dowerAllData={}--当前法宝全部天赋数据(天赋可能为空) dowerAllData= ConfigManager.GetAllConfigsDataByKey(ConfigName.EquipTalismana,"TalismanaId",data[2]) local dowerData={}--当前法宝全部技能数据(天赋不为空) --LogError("#dowerAllData==================================="..#dowerAllData) for i=1,#dowerAllData do if dowerAllData[i].OpenSkillRules then table.insert( dowerData, dowerAllData[i]) end end table.sort(dowerData, function(a,b) return a.Level=dowerData[n].Level then --LogError("dowerData[n].OpenSkillRules[1]]=="..dowerData[n].OpenSkillRules[1]) if passiveSkillConfig[dowerData[n].OpenSkillRules[1]] then strTable[n]= string.format( Language[11534], dowerData[n].Level,GetLanguageStrById(passiveSkillConfig[dowerData[n].OpenSkillRules[1]].Desc),"\n") end else if passiveSkillConfig[dowerData[n].OpenSkillRules[1]] then strTable[n]=string.format( Language[11535],dowerData[n].Level,GetLanguageStrById(passiveSkillConfig[dowerData[n].OpenSkillRules[1]].Desc),"\n") end end if dowerData[n].Level==30 or dowerData[n].Level==50 then strTable[n]=string.gsub(strTable[n],"·","") strTable[n]=Language[11536]..strTable[n] str=str..strTable[n] end end end --str=table.concat(strTable)--将表里字符串拼接 --看这下面 是全角空格哦~ this.dowerText.text=string.sub(string.gsub(str," "," "),1,-2)--去除最后\n end return TalismanInfoPopup