local UIWarHorse = UIViewClass() function UIWarHorse:OnOpened() self:RegistSystemEvent(EventID.UI_WarHorse_OnCloseGamePlay, self.OnCloseActivity) self.isFirstFocus = true self:UpdateInfo() UIUtils.SetLabelText(self.UITemplateTitlePanel.lab_Title, Const_IDS.IDS_Horse_Title_1) self:SetPushStyle(LuaConst.PushStyleEnum.HIDE) end function UIWarHorse:OnFocusChanged(isFocus) if isFocus then if self.isFirstFocus then self.isFirstFocus = false else self:UpdateInfo() end end end function UIWarHorse:OnCloseActivity() self:CloseView(true) end function UIWarHorse:UpdateInfo() local sortedList = MDL.WarHorse.GetSortedHorseList() local cellCount = self.Scroll.Count local isInit = #sortedList > cellCount if isInit then for i = 1, #sortedList do self.Scroll:AddData(sortedList[i], 0) end else for i = 1, #sortedList do self.Scroll:UpdateIndex(i - 1, sortedList[i]) end end end function UIWarHorse:OnCellInit(scrollRect, index, cellTable, data) local config = data UTL.Color.SetQualityImageByType(cellTable.img_quality, config.HorseQuality, UTL.Color.QualityType.HorseBase) -- 设置四个角的颜色 UTL.Color.SetQualityImageByType(cellTable.img_Cornner_LU, config.HorseQuality, UTL.Color.QualityType.HorseBaseOverFrame) UTL.Color.SetQualityImageByType(cellTable.img_Cornner_RU, config.HorseQuality, UTL.Color.QualityType.HorseBaseOverFrame) UTL.Color.SetQualityImageByType(cellTable.img_Cornner_RD, config.HorseQuality, UTL.Color.QualityType.HorseBaseUnderFrame) UTL.Color.SetQualityImageByType(cellTable.img_Cornner_LD, config.HorseQuality, UTL.Color.QualityType.HorseBaseUnderFrame) --cellTable.img_Frame:SetNativeSize() UIUtils.SetImageByAssetBundle(cellTable.img_WarHorse, config.HorsePicture) cellTable.effect_HorseQuality:StopUIEffect() cellTable.effect_active:StopUIEffect() cellTable.effect_RedPoint:StopUIEffect() local activeInfo = MDL.WarHorse.GetInfoByID(config.HorseID) if activeInfo then if activeInfo.HeroID then --已穿戴 UIUtils.SetActive(cellTable.img_Equipment.gameObject, true) else UIUtils.SetActive(cellTable.img_Equipment.gameObject, false) end cellTable.obj_state:SetState(1) local horseEquipRedPoint = CTL.HorseEquip.CheckIfHorseEquipHasRp(config.HorseID) if CTL.WarHorse.CheckIfWarHorseBreak(config.HorseID) or CTL.HorseSoul.CheckIfHorseSoulHasRp(config.HorseID) or horseEquipRedPoint then cellTable.effect_RedPoint:PlayUIEffect() else cellTable.effect_RedPoint:StopUIEffect() end if activeInfo.HorseInfo.starLevel > 0 then cellTable.lab_Name.text = UTL.Color.FormatQualityText(UIUtils.GetLocalizedTxt(Const_IDS[config.HorseName]) .. "+" .. activeInfo.HorseInfo.starLevel, config.HorseQuality) else cellTable.lab_Name.text = UTL.Color.FormatQualityText(UIUtils.GetLocalizedTxt(Const_IDS[config.HorseName]), config.HorseQuality) end --品质特效 UTL.Color.PlayQualityEffect(cellTable.effect_HorseQuality, data.HorseColorEffectID, UTL.Color.EffectType.Main) else cellTable.lab_Name.text = UTL.Color.FormatQualityText(UIUtils.GetLocalizedTxt(Const_IDS[config.HorseName]), config.HorseQuality) UIUtils.SetActive(cellTable.img_Equipment.gameObject, false) --目前为1个材料 local costNum = config.Item_Table[1].ItemNum local curNum = MDL.Bag.GetItemCount(config.Item_Table[1].ItemID) local isRed = curNum >= costNum if isRed then cellTable.obj_state:SetState(1) cellTable.lab_Amount.text = UTL.Color.FormatQualityText(curNum, 1) .. "/" .. costNum cellTable.effect_active:PlayUIEffect() cellTable.effect_RedPoint:PlayUIEffect() else cellTable.obj_state:SetState(0) cellTable.lab_Amount.text = UTL.Color.FormatRedColor(curNum) .. "/" .. costNum cellTable.effect_active:StopUIEffect() cellTable.effect_RedPoint:StopUIEffect() end end end function UIWarHorse:OnCellClicked(scrollRect, index, cellTable, target, data) CTL.WarHorse.OpenSubPanel(CTL.WarHorse.Horse_EnterType.WarHorse,data) end function UIWarHorse:OnBackButtonPressed() self:OnButtonClicked(self.UITemplateTitlePanel.btn_close) end function UIWarHorse: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.Horse}) end end return UIWarHorse