--- 主播pc包自由演武选择坐骑 local UICharacterTeamChangeImage = require "View/Character/UICharacterTeamChangeImage" local UIPCSelectHorseView = UIViewClass(UICharacterTeamChangeImage) local ModelShowIndex = { Hero = 0, Horse = 1, HorseAppearance = 3 } function UIPCSelectHorseView:Init() self.curWearedHorseId = self:GetCurWearedHorseId() self.toggle_LeftGroup:SelectIndex(1) UIUtils.SetActive(self.group_LeftBtn.gameObject, false) UIUtils.SetLabelText(self.UITemplateTitlePanel.lab_Title, Const_IDS.IDS_ZhuBo_EntryName4) end function UIPCSelectHorseView:GetCurWearedHorseId() local horseModelID = BattleDataGetter.GetCurEntityHorseModelID() if horseModelID then for _, v in DataSheetManager.HorseAppearance:GetEnumerator() do if v.HorseModelID == horseModelID then return v.ID end end for _,v in DataSheetManager.HorseData:GetEnumerator() do if v.HorseModelID == horseModelID then return v.HorseID end end end return 0 end function UIPCSelectHorseView:OnButtonClicked(comp) if comp == self.btn_Change then CTL.PCGameStreamer.SetHorseAndAppearenceId(self.curSelectHorseId, self.curSelectAppearanceId) if self.curSelectHorseId ~= 0 then self.curWearedHorseId = self.curSelectHorseId self.Scroll_ChangeHorse:RefreshCells() else self.curWearedHorseId = self.curSelectAppearanceId self.Scroll_ChangeHorseSkin:RefreshCells() end else UICharacterTeamChangeImage.OnButtonClicked(self, comp) end end local function sortHorseRule(a, b) if a.HorseQuality ~= b.HorseQuality then return a.HorseQuality > b.HorseQuality else return a.HorseID < b.HorseID end end function UIPCSelectHorseView:GetRidingHorseHeroId() return BattleDataGetter.GetMainPlayerCharacterID() end function UIPCSelectHorseView:GetHorseSortedList() local horseList = {} for i,v in DataSheetManager.HorseData:GetEnumerator() do if v.HorseID ~= self.curWearedHorseId and MDL.HideGolden.IsShowGoldenByID(LuaConst.ShowGoldenType.Horse, v.HorseID) then -- 屏蔽金马的判断 table.insert(horseList, v) end end table.sort(horseList, sortHorseRule) local isSuccess, horseData = DataSheetManager.HorseData:TryGetDataByHorseID(self.curWearedHorseId) if isSuccess then table.insert(horseList,1, horseData) end return horseList end local function sortHorseAppearanceRule(a, b) if a.Color ~= b.Color then return a.Color > b.Color end if a.Sort ~= b.Sort then return a.Sort > b.Sort end return a.ID < b.ID end function UIPCSelectHorseView:InitHorseAppearanceCell() local appearanceList = {} for index, v in DataSheetManager.HorseAppearance:GetEnumerator() do if v.ID ~= self.curWearedHorseId then table.insert(appearanceList, v) end end table.sort(appearanceList, sortHorseAppearanceRule) local isSuccess, horseAppearanceData = DataSheetManager.HorseAppearance:TryGetDataByID(self.curWearedHorseId) if isSuccess then table.insert(appearanceList,1, horseAppearanceData) end self.Scroll_ChangeHorseSkin:ReloadAll(appearanceList) self.Scroll_ChangeHorseSkin:SelectIndex(0, true) end function UIPCSelectHorseView:InitHorseCellStatus(cellTable, data) UIUtils.SetActive(cellTable.mask_Locked, false) UIUtils.SetActive(cellTable.img_UsedBg, data.HorseID == self.curWearedHorseId) end function UIPCSelectHorseView:InitHorseAppearanceCellStatus(cellTable, data) UIUtils.SetActive(cellTable.mask_Locked, false) UIUtils.SetActive(cellTable.img_UsedBg, self.curWearedHorseId == data.ID) end function UIPCSelectHorseView:OnClickCellItem(cellIndex) UICharacterTeamChangeImage.OnClickCellItem(self, cellIndex) if self.curWearedHorseId ~= self.selectCellData.HorseID and self.curWearedHorseId ~= self.selectCellData.ID then self.obj_state:SetState(0) else self.obj_state:SetState(1) UIUtils.SetLabelText(self.txt_PromptInfo, Const_IDS.IDS_HorseAppearance_Wearing) end UIUtils.SetLabelText(self.lab_Change, Const_IDS["IDS_Team_ChangeHint_2"]) UIUtils.SetActive(self.img_BlackBG, false) if self.modelType == ModelShowIndex.Horse then self.curSelectHorseId = self.selectCellData.HorseID self.curSelectAppearanceId = 0 elseif self.modelType == ModelShowIndex.HorseAppearance then self.curSelectHorseId = 0 self.curSelectAppearanceId = self.selectCellData.ID end end return UIPCSelectHorseView