local UITreasureSkillTips = UIViewClass() function UITreasureSkillTips:OnOpened(context) local treasureId = context.treasureId local treasureSkillId = context.treasureSkillId self.state_Icon:SetState(1) self.txt_Lv = self.group_Circle.txt_Lv self.group_Level = self.group_Circle.group_Level self.img_Talent = self.group_Circle.img_Talent self.group_Locked = self.group_Circle.group_Locked self:RefreshTalentInfo(treasureId, treasureSkillId) end function UITreasureSkillTips:RefreshTalentInfo(treasureId, treasureSkillId) UIUtils.SetActive(self.group_LevelUpHint.gameObject, false) local treasureData = DataSheetManager.TreasureData:GetDataByTreasureID(treasureId) local fistSkillData = DataSheetManager.TreasureSkillData:GetDataByTreasureSkill(treasureData.TreasureSkill) UIUtils.SetLabel(self.txt_TalentDes, UTL.String.FormatCombineTextByID(fistSkillData.TreasureSkillDes)) self:UIAdjustTalentScroll() -- 默认技能羁绊描述 self.relationState = CTL.Treasure.GetTreasureHeroRelationState(treasureId, MDL.Treasure.GetTreasureEquipHeroId(treasureId)) local relationHeroID = CTL.Treasure.GetTreasureRelationHero(treasureId) -- 武将版本屏蔽 self.isShowByDLC = relationHeroID > 0 and MDL.HideGolden.IsShowGoldenByID(LuaConst.ShowGoldenType.Hero, relationHeroID) if self.relationState == CTL.Treasure.RelationState.NoRelation or not self.isShowByDLC then UIUtils.SetActive(self.group_FetterInfo, false) else UIUtils.SetActive(self.group_FetterInfo, true) local relationSkillDesc = CTL.Treasure.GetRelationSkillDesc(treasureId, 0) UIUtils.SetLabel(self.txt_FetterInfo, relationSkillDesc) self:UIAdjustFetterScroll() local isRelationActive = self.relationState == CTL.Treasure.RelationState.ActiveRelation self.state_DesFetter:SetState(isRelationActive and 1 or 0) UIUtils.SetActive(self.img_Active, isRelationActive) UIUtils.SetActive(self.img_Lock, not isRelationActive) end local treasureSkillData = DataSheetManager.TreasureSkillData:GetDataByTreasureSkill(treasureSkillId) UIUtils.SetImageByAssetBundle(self.img_Talent, treasureSkillData.TreasureSkillIcon) UIUtils.SetLabelText(self.txt_TalentName, Const_IDS[treasureSkillData.TreasureSkillName]) self.activeInfo = MDL.Treasure.GetTreasureInfo(treasureId) UIUtils.SetActive(self.group_LockCondition.gameObject, not self.activeInfo) self.state_DesLock:SetState( self.activeInfo and 1 or 0) self.starLevel = self.activeInfo and self.activeInfo.TreasureInfo.starLevel or 0 self.curSkillLevel = treasureSkillData.SkillLevel if self.activeInfo then UIUtils.SetActive(self.group_Level.gameObject, true) UIUtils.SetActive(self.group_LevelUpHint.gameObject, true) UIUtils.SetLabel(self.txt_Lv, treasureSkillData.SkillLevel) if CTL.Treasure.IsTreasureSkillMaxLevel(treasureId, treasureSkillId) then UIUtils.SetLabelText(self.txt_LevelUpHint, Const_IDS.IDS_HeroSkill_UnlockHint3) else UIUtils.SetLabel(self.txt_LevelUpHint, string.FormatByIdsId(Const_IDS.IDS_BreakThrough_TipsDes2, UTL.Attr.GetTreasureBreakTargetLevelById(treasureId, treasureSkillId))) end else UIUtils.SetActive(self.group_Level.gameObject, false) UIUtils.SetLabel(self.txt_LockInfo, string.FormatByIdsId(Const_IDS.IDS_BreakThrough_TipsDes1)) end for k,v in DataSheetManager.TreasureStar:GetDataByTreasureID_Star(treasureId) do if v.StarType == 3 then self.loop_TalentSkill:AddData(v, 0) end end for i, v in ipairs(self.group_Type) do if i == 1 then UIUtils.SetActive(v.gameObject, true) UIUtils.SetLabelText(v.txt_Type, Const_IDS.IDS_BreakThrough_Passive ) UIUtils.SetImageByAssetBundle(v.img_Bg, ConstAssetPathConfig.Path41) else UIUtils.SetActive(v.gameObject, false) end end end function UITreasureSkillTips:OnButtonClicked(comp) if comp == self.btn_Back then self:CloseView() end end function UITreasureSkillTips:OnCellInit(scrollRect, index, cellTable, data) local treasureSkillData = DataSheetManager.TreasureSkillData:GetDataByTreasureSkill(data.TreasureSkill) UIUtils.SetLabel(cellTable.txt_Level, string.format(UIUtils.GetLocalizedTxt(Const_IDS.IDS_BreakThrough_Level), treasureSkillData.SkillLevel)) UIUtils.SetLabel(cellTable.txt_Talent, UTL.String.FormatCombineTextByID(treasureSkillData.TreasureSkillDes)) local treasureID = self.context.treasureId local isUnlock = self.curSkillLevel >= treasureSkillData.SkillLevel local isInLevel = self.curSkillLevel == treasureSkillData.SkillLevel -- 宝物技能描述状态 if isUnlock then if isInLevel then cellTable.state_Talent:SetState(2) else cellTable.state_Talent:SetState(1) end else cellTable.state_Talent:SetState(0) end -- 宝物羁绊技能描述状态,并且武将版本开放 UIUtils.SetActive(cellTable.group_FetterInfo, self.relationState > CTL.Treasure.RelationState.NoRelation and self.isShowByDLC) local isActiveRelation = self.relationState == CTL.Treasure.RelationState.ActiveRelation if self.relationState > CTL.Treasure.RelationState.NoRelation then -- 有羁绊技能 local relationSkillDesc = CTL.Treasure.GetRelationSkillDesc(treasureID, data.Star + 1) UIUtils.SetLabel(cellTable.txt_FetterInfo, relationSkillDesc) self:UIAdjustFetterScroll() if not isActiveRelation or not isUnlock then UIUtils.SetActive(cellTable.img_Active, false) UIUtils.SetActive(cellTable.img_Lock, true) cellTable.state_Fetter:SetState(0) else UIUtils.SetActive(cellTable.img_Active, true) UIUtils.SetActive(cellTable.img_Lock, false) if isUnlock and isInLevel then cellTable.state_Fetter:SetState(2) else cellTable.state_Fetter:SetState(1) end end end end function UITreasureSkillTips:UIAdjustTalentScroll() --当超出范围时,转变成可滑动的组件 if self.txt_TalentDes.preferredHeight > 380 then UIUtils.SetParent(self.txt_TalentDes, self.Content) UIUtils.SetActive(self.scroll_Txt, true) else UIUtils.SetParent(self.txt_TalentDes, self.group_Info) UIUtils.SetActive(self.scroll_Txt, false) end end function UITreasureSkillTips:UIAdjustFetterScroll() if self.txt_FetterInfo.preferredHeight > 180 then UIUtils.SetParent(self.txt_FetterInfo, self.content_Fetter) UIUtils.SetActive(self.scroll_FetterInfo, true) else UIUtils.SetParent(self.txt_FetterInfo, self.group_FetterInfo) UIUtils.SetActive(self.scroll_FetterInfo, false) end end return UITreasureSkillTips