require("Base/BasePanel") DropGetSSRHeroShopPanel = Inherit(BasePanel) local heroConfigData = ConfigManager.GetConfig(ConfigName.HeroConfig) local passiveSkillConfig=ConfigManager.GetConfig(ConfigName.PassiveSkillConfig) local passiveSkillLogicConfig=ConfigManager.GetConfig(ConfigName.PassiveSkillLogicConfig) local heroRankupConfig=ConfigManager.GetConfig(ConfigName.HeroRankupConfig) local heroBackData = {} local callBack local orginLayer --初始化组件(用于子类重写) function DropGetSSRHeroShopPanel:InitComponent() self.spLoader = SpriteLoader.New() orginLayer = 0 self.live2dRoot = Util.GetGameObject(self.gameObject, "live2dRoot") self.bg = Util.GetGameObject(self.gameObject, "bg") self.bg2 = Util.GetGameObject(self.gameObject, "bg2") screenAdapte(self.bg2) self.sureBtn = Util.GetGameObject(self.transform, "sureBtn") self.UI_Effect_chouka = Util.GetGameObject(self.transform, "bg/UI_Effect_chouka") self.sureBtn = Util.GetGameObject(self.transform, "sureBtn") self.rolePanel = Util.GetGameObject(self.transform, "rolePanel") self.heroName = Util.GetGameObject(self.transform, "rolePanel/Panel/name/heroName"):GetComponent("Text") self.proImage = Util.GetGameObject(self.transform, "rolePanel/Panel/name/proImage/proImage/proImage"):GetComponent("Image") self.starGrid = Util.GetGameObject(self.transform, "rolePanel/Panel/star") self.posImage=Util.GetGameObject(self.transform,"rolePanel/Pos/PosImage"):GetComponent("Image") self.posText=Util.GetGameObject(self.transform,"rolePanel/Pos/PosText"):GetComponent("Text") self.info=Util.GetGameObject(self.gameObject,"rolePanel/Panel/Info") self.infoTitleBg=Util.GetGameObject(self.info,"TitleBg") self.infoTitle=Util.GetGameObject(self.infoTitleBg,"Title"):GetComponent("Text") self.infoBody=Util.GetGameObject(self.info,"BodyBg/Viewport/Body"):GetComponent("Text") self.infoBodyGo=Util.GetGameObject(self.info,"BodyBg") end --绑定事件(用于子类重写) function DropGetSSRHeroShopPanel:BindEvent() Util.AddClick(self.sureBtn, function() self:ClosePanel() end) end --添加事件监听(用于子类重写) function DropGetSSRHeroShopPanel:AddListener() end --移除事件监听(用于子类重写) function DropGetSSRHeroShopPanel:RemoveListener() end local heroStaticData local testLiveGO --界面打开时调用(用于子类重写) function DropGetSSRHeroShopPanel:OnOpen(_heroBackData,func) heroBackData = _heroBackData callBack = func end function DropGetSSRHeroShopPanel:OnSortingOrderChange() Util.AddParticleSortLayer(self.bg, self.sortingOrder - orginLayer) self.live2dRoot:GetComponent("Canvas").sortingOrder = self.sortingOrder + 10 self.rolePanel:GetComponent("Canvas").sortingOrder = self.sortingOrder + 100 orginLayer = self.sortingOrder end --界面打开或者重新打开后,界面刷新时调用(用于子类重写) function DropGetSSRHeroShopPanel:OnShow() self.UI_Effect_chouka:SetActive(true) SoundManager.PlaySound(SoundConfig.Sound_Recruit3) heroStaticData = heroConfigData[heroBackData.heroId] --TODO:动态加载立绘 testLiveGO = poolManager:LoadLive(GetResourcePath(heroStaticData.Live), self.live2dRoot.transform, Vector3.one * heroStaticData.Scale, Vector3.New(heroStaticData.Position[1],heroStaticData.Position[2],0)) local SkeletonGraphic = testLiveGO:GetComponent("SkeletonGraphic") SetHEeroLiveToward(testLiveGO,heroStaticData.Toward,heroStaticData.Position) local idle = function() SkeletonGraphic.AnimationState:SetAnimation(0, "idle", true) end SkeletonGraphic.AnimationState.Complete = SkeletonGraphic.AnimationState.Complete + idle poolManager:SetLiveClearCall(GetResourcePath(heroStaticData.Live), testLiveGO, function () SkeletonGraphic.AnimationState.Complete = SkeletonGraphic.AnimationState.Complete - idle end) self.infoTitle.text=GetLanguageStrById(heroStaticData.HeroLocationDesc1) SetHeroStars(self.spLoader, self.starGrid, heroStaticData.Star,1,Vector2.New(52,52),-2,Vector2.New(0.5,0.5)) -- self.profession.sprite = self.spLoader:LoadSprite(GetJobSpriteStrByJobNum(heroStaticData.Profession)) self.proImage.sprite =self.spLoader:LoadSprite(GetProStrImageByProNum(heroStaticData.PropertyName)) self.heroName.text =GetLanguageStrById(heroStaticData.ReadingName) --string.format("lv.%s", heroData.lv) Util.GetGameObject(self.transform,"Pos"):GetComponent("Image").sprite = self.spLoader:LoadSprite(GetHeroPosBgStr(heroStaticData.Profession)) self.posImage.sprite=self.spLoader:LoadSprite(GetHeroPosStr(heroStaticData.Profession)) self.posText.text=GetLanguageStrById(heroStaticData.HeroLocation) SetTextVerTial(self.posText.gameObject,Vector3.New(63.76,1.5,0),"MiddleLeft") --指定星级开启info self.info:SetActive(heroStaticData.Star == 5 or heroStaticData.Star == 4) self.infoBodyGo:SetActive(heroStaticData.Star == 5) self.infoTitle.text=GetLanguageStrById(heroStaticData.HeroLocationDesc1) if heroStaticData.Star == 5 then local t={} local upStarSkillDataList={} --数据容器 --获取几星激活数据 for i = 1, #heroStaticData.OpenPassiveSkillRules do if heroStaticData.OpenPassiveSkillRules[i][1] == 2 then local passiveSkillConfig = passiveSkillConfig[heroStaticData.OpenPassiveSkillRules[i][3]] if passiveSkillConfig and passiveSkillLogicConfig[passiveSkillConfig.Id].Judge == 1 and string.len(passiveSkillConfig.Desc) > 1 then local d = {} d.passiveSkillConfig = passiveSkillConfig d.OpenPassiveSkillRules = heroStaticData.OpenPassiveSkillRules[i] d.titleStr = ""..NumToSimplenessFont[heroRankupConfig[heroStaticData.OpenPassiveSkillRules[i][2]].Phase[2]] .. Language[11718] table.insert(upStarSkillDataList,d) end end end --数据插入t for j = 1, #upStarSkillDataList do if passiveSkillLogicConfig[upStarSkillDataList[j].passiveSkillConfig.Id].Judge == 1 then table.insert(t,upStarSkillDataList[j].titleStr..GetLanguageStrById(upStarSkillDataList[j].passiveSkillConfig.Desc).."\n") end end --获取法宝数据 local dTalis = ConfigManager.GetConfigData(ConfigName.HeroConfig,heroStaticData.Id).EquipTalismana--当前法宝数据 data[1]星级 data[2]法宝ID local dowerAllData= ConfigManager.GetAllConfigsDataByKey(ConfigName.EquipTalismana,"TalismanaId",dTalis[2])--当前法宝全部天赋数据(天赋可能为空) local dowerData={}--当前法宝全部技能数据(天赋不为空) for k=1,#dowerAllData do if dowerAllData[k].OpenSkillRules then table.insert(dowerData, dowerAllData[k]) end end --数据插入t,保证在星数据后 for n=1,#dowerData do if dowerData[n].Level==25 then table.insert(t,Language[11719]..GetLanguageStrById(passiveSkillConfig[dowerData[n].OpenSkillRules[1]].Desc).."\n") end end local s=table.concat(t)--将表里字符串拼接 --看这下面 是全角空格哦~ self.infoBody.text=string.sub(s,1,-2)--去除最后\n end PlayUIAnim(self.transform) end --界面关闭时调用(用于子类重写) function DropGetSSRHeroShopPanel:OnClose() if testLiveGO then poolManager:UnLoadLive(GetResourcePath(heroStaticData.Live), testLiveGO) testLiveGO = nil end if callBack then callBack() end end --界面销毁时调用(用于子类重写) function DropGetSSRHeroShopPanel:OnDestroy() self.spLoader:Destroy() end return DropGetSSRHeroShopPanel