local UIDivineWeapon = UIViewClass() function UIDivineWeapon:OnOpened(context) self:RegistSystemEvent(EventID.UI_DivineWeapon_Update,self.RefreshInfo) self:RegistSystemEvent(EventID.UI_DivineWeapon_OnCloseGamePlay, self.OnCloseActivity) self:RegistSystemEvent(EventID.UI_DivineWeapon_ForgeUpdate,self.RefreshInfo) self:RegistSystemEvent(EventID.UI_DivineWeapon_ForgeSoul_Update,self.RefreshInfo) self:RegistSystemEvent(EventID.UI_HeroAwaken_UpdateWeaponBreakInfo,self.RefreshInfo) self:RegistSystemEvent(EventID.UI_HeroAwaken_WeaponAwaken,self.RefreshInfo) self:RegistSystemEvent(EventID.UI_Appearance_Refresh, self.RefreshInfo) --设置标题 IDS_Magical UIUtils.SetLabelText(self.UITemplateTitlePanel.lab_Title, Const_IDS.IDS_Magical) local list = MDL.DivineWeapon.GetAllData() for i,v in ipairs(list) do self.ConditionScroll:AddData(v,0) end self:SetPushStyle(LuaConst.PushStyleEnum.HIDE) end function UIDivineWeapon:OnCloseActivity() self:CloseView(true) end function UIDivineWeapon:RefreshInfo() local list = MDL.DivineWeapon.GetAllData() for i,v in ipairs(list) do self.ConditionScroll:UpdateIndex(i-1,v) end end function UIDivineWeapon:OnBackButtonPressed() self:OnButtonClicked(self.UITemplateTitlePanel.btn_close) end function UIDivineWeapon:OnButtonClicked(comp) if comp == self.UITemplateTitlePanel.btn_close then self:CloseView(true) elseif comp == self.UITemplateTitlePanel.btn_Home then CTL.HomeMain.CloseViewBackHomeMain() elseif comp == self.UITemplateTitlePanel.btn_Info then UIManager.OpenView(Const_UI_Lua.UIEnum.UICommonNoteView, {id = LuaConst.NoteID.MagicWeapon}) end end function UIDivineWeapon:OnCellInit(scrollRect, index, cellTable, data) local isWeaponAwaken = MDL.HeroAwaken.GetIsWeaponAwaken(data.MagicWeaponID) UTL.Item.SetHeroHalfCardImageByHeroId(cellTable.event_Head, data.MagicWeaponID, isWeaponAwaken) if isWeaponAwaken then CTL.HeroAwaken.SetWeaponImage(cellTable.weaponImage, data.MagicWeaponID) else local itemIcon = string.format(ConstAssetPathConfig.Path22, data.MagicWeaponPicture) UIUtils.SetImageByAssetBundle(cellTable.weaponImage, itemIcon) end local quality = CTL.HeroAwaken.GetWeaponQuality(data.MagicWeaponID, MDL.HeroAwaken.GetIsWeaponAwaken(data.MagicWeaponID)) UTL.Color.SetQualityImageByType(cellTable.bg, quality, UTL.Color.QualityType.MagicWeaponBg) cellTable.sprite_BgZhen.gameObject:SetActive(MDL.Player.HeroIsLineUp(data.MagicWeaponID)) cellTable.effect_WeaponQuality:StopUIEffect() -- 助战图标显示 UIUtils.SetActive(cellTable.img_AssistanceIcon, MDL.AssistanceFight.IsHeroOnAssistancePos(data.MagicWeaponID)) cellTable.weaponImage:SetNativeSize() local heroInfo = MDL.HeroSelect.GetHeroInfo(data.MagicWeaponID) if heroInfo then cellTable.img_HeroUnGet.gameObject:SetActive(false) cellTable.panel_Act.gameObject:SetActive(not heroInfo.isMagicWeaponActive) if not heroInfo.isMagicWeaponActive then cellTable.lab_amount.text = heroInfo.magicWeaponActivePhase.."/5" cellTable.mask_UnActivation.gameObject:SetActive(true) else --品质特效 UTL.Color.PlayQualityEffect(cellTable.effect_WeaponQuality, data.EffectID, UTL.Color.EffectType.Main) cellTable.mask_UnActivation.gameObject:SetActive(false) end local isActiveRed = CTL.Appearance.CanActiveWeaponAppearance(data.MagicWeaponID) local isShowRed = MDL.DivineWeapon.GetEnoughLevel(data) or CTL.DivineWeapon.HasForgeRP(data.MagicWeaponID) or CTL.Appearance.IsShowWeaponRedPoint(data.MagicWeaponID) or CTL.HeroAwaken.CheckWeaponAwakenRed(data.MagicWeaponID) or CTL.HeroAwaken.CheckWeaponSkillRed(data.MagicWeaponID) if MDL.Player.HeroIsLineUp(data.MagicWeaponID) or isActiveRed or (isShowRed and not heroInfo.isMagicWeaponActive) then cellTable.sprite_redpoint.gameObject:SetActive(isShowRed or isActiveRed) UIUtils.SetActive(cellTable.img_YelPoint, false) else cellTable.sprite_redpoint.gameObject:SetActive(false) UIUtils.SetActive(cellTable.img_YelPoint, isShowRed) end if isWeaponAwaken then cellTable.lab_NameActivation.text = UTL.Color.FormatQualityText(CTL.HeroAwaken.GetAwakenWeaponName(data.MagicWeaponID), quality) else if heroInfo.magicWeaponLevel > 0 then cellTable.lab_NameActivation.text = UTL.Color.FormatQualityText(UIUtils.GetLocalizedTxt(Const_IDS[data.MagicWeaponName]).."+"..heroInfo.magicWeaponLevel, quality) else cellTable.lab_NameActivation.text = UTL.Color.FormatQualityText(UIUtils.GetLocalizedTxt(Const_IDS[data.MagicWeaponName]), quality) end end else cellTable.img_HeroUnGet.gameObject:SetActive(true) cellTable.panel_Act.gameObject:SetActive(false) cellTable.sprite_redpoint.gameObject:SetActive(false) cellTable.mask_UnActivation.gameObject:SetActive(true) UIUtils.SetActive(cellTable.img_YelPoint, false) cellTable.lab_NameActivation.text = UTL.Color.FormatQualityText(UIUtils.GetLocalizedTxt(Const_IDS[data.MagicWeaponName]), quality) end end function UIDivineWeapon:OnCellClicked(scrollRect, index, cell, target, data) UIManager.OpenAndPushAll(Const_UI_Lua.UIEnum.UIDivineWeaponBasePanel,{data = data}) end return UIDivineWeapon